Customize error message with simple_form

后端 未结 4 1883
一向
一向 2020-12-29 13:57

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?

4条回答
  •  醉酒成梦
    2020-12-29 14:11

    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.

提交回复
热议问题