Alex Rivera | Logout

Customize error message with simple_form

Asked 2011-04-27T18:14:10.357
9

I'm using the simple_form gem. I want to customize the error message displayed when a user fails validations. How can I accomplish this?

Edit
Report

1 Answer

8

I dont know if it is any different for simple_form gem.

For content of error messages to be changed, you can use the :message attribute in the model.

class User < ActiveRecord::Base
  validates :email, {:presence => true, :message => "is not filled up."}
end

Now the validation message will be Email is not filled up. If you want the field name also to be changed(Email to E-mail address something like that ), the approach now is to define it in locales.rb file like this

# config/locales/en.yml
en:
  activerecord:
    attributes:
      user:
        email: "E-mail address"

See link for details on locales. Another approach is to define in the model, humanized attributes like this:

class User < ActiveRecord::Base
  validates :email, {:presence => true, :message => "is not filled up."}
  HUMANIZED_ATTRIBUTES = {
    :email => "E-mail address",
    ...(other fields and their humanized names)
    ...
  }

  def self.human_attribute_name(attr, options={})
    HUMANIZED_ATTRIBUTES[attr.to_sym] || super
  end

end

For customizing style of validation message we will have to edit the style for #errorExplanation and .fieldWithErrors,in the scaffold.css stylesheet.

answered 2011-04-27T19:49:34.713

Your Answer