Showing error messages in active admin for has many relationship table

Piyush Choudhary picture Piyush Choudhary · Nov 15, 2012 · Viewed 12.1k times · Source

I am facing an issue showing up the error messages in active admin.

I get all the error messages displayed with the fields in the form. But in the code below, I need atleast one skill and maximum 5 skills to be added. Else need to throw an error message.

I've added a validation in model as :

validates :skills, :length => { :minimum => 1, :maximum => 5, :message => " should be atleast 1 and less than 5"}

This validates perfectly, but no error message is displayed.

Can anyone help me with the display of the error message.

Following is the code :

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's 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

Answer

Fivell picture Fivell · Dec 15, 2012

activeadmin 0.5.1 is available on github. it contains next line in changelog

"Add support for semantic errors #905 by @robdiciuccio"

here is pull request with this feature https://github.com/gregbell/active_admin/pull/905

example

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

to use it add to Gemfile

gem 'activeadmin', :git =>  "git://github.com/gregbell/active_admin.git", :tag => "v0.5.1"