Отображение сообщений об ошибках в активном admin for имеет много таблиц отношений
У меня возникла проблема с отображением сообщений об ошибках в активном админе.
Я получаю все сообщения об ошибках, отображаемые с полями в форме.
Но в приведенном ниже коде мне нужно по крайней мере одно умение и максимум 5 навыков, которые нужно добавить.
Else необходимо отправить сообщение об ошибке.
Я добавил валидацию в модели как:
validates: skills,: length = > {: minimum = > 1,: maximum = > 5, : message = > "должно быть по крайней мере 1 и меньше 5" }
Это отлично проверяется, но не отображается сообщение об ошибке.
Может ли кто-нибудь помочь мне с отображением сообщения об ошибке.
Ниже приведен код:
form :html => { :enctype => "multipart/form-data" } do |f|
f.inputs "User", :multipart => true do
f.input :name
f.input :email, :as => :email
f.input :profile_name
f.input :date_of_birth
f.input :gender, :as => :select, :collection => Gender::GENDERS
end
f.inputs "Skills* ( minimum 1 & maximum 5 )" do
f.has_many :skills do |p|
if !p.object.nil?
# show the destroy checkbox only if it is an existing appointment
# else, there already dynamic JS to add / remove new appointments
p.input :_destroy, :as => :boolean, :label => "Destroy?",
:hint => "Check this checkbox, if you want to delete this field."
end
p.input :description
p.input :title
end
end
end
end
Ответы
Ответ 1
activeadmin 0.5.1 доступен на github.
он содержит следующую строку в списке изменений
"Добавить поддержку семантических ошибок # 905 by @robdiciuccio"
вот запрос тянуть с этой функцией
https://github.com/gregbell/active_admin/pull/905
Пример
form do |f|
f.semantic_errors *f.object.errors.keys
f.inputs
f.inputs "Locations" do
f.has_many :locations do |loc|
loc.input :address
loc.input :_destroy, :as => :boolean, :label => "Delete"
end
end
f.buttons
end
чтобы использовать его в Gemfile
gem 'activeadmin', :git => "git://github.com/gregbell/active_admin.git", :tag => "v0.5.1"
Ответ 2
Для прохождения проверки попробуйте это
validates_length_of :skills,
:within => 1..5,
:too_short => 'too short message',
:too_long => 'too long message'