Отображение сообщений об ошибках в активном admin for имеет много таблиц отношений - программирование

Отображение сообщений об ошибках в активном 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
4b9b3361

Ответ 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'