Where can I find a list of Rails error message keys?

I am trying to customize my error messages by changing en.yml .

 en: errors: messages: blank: "This is a required field." 

And now every empty field that has a validates presence: true validator shows this new message.

I want to find a list of message types to modify. For example, how can I configure the numericality validator message? Or the greater_than validator?

Any suggestions where to find this?

+4
source share
3 answers

Here is a list of messages that you can configure in the en.yml file:

 validates_acceptance_of `:accepted` ("must be accepted") validates_associated `:invalid` ("is invalid") validates_confirmation_of `:confirmation` ("doesn't match confirmation") validates_exclusion_of `:exclusion` ("is reserved") validates_format_of `:invalid` ("is invalid") validates_inclusion_of `:inclusion`("is not included in the list") validates_length_of `:too_short` ("is too short (minimum is {{count}} characters)") `:too_long` ("is too long (maximum is {{count}} characters)") validates_length_of (with :is option) `:wrong_length` ("is the wrong length (should be {{count}} characters)") validates_numericality_of `:not_a_number` ("is not a number") validates_numericality_of (with :odd option) `:odd` ("must be odd") validates_numericality_of (with :even option) `:even` ("must be even") validates_numericality_of (with :greater_than option) `:greater_than` ("must be greater than {{count}}") validates_numericality_of (with :greater_than_or_equal_to option) `:greater_than_or_equal_to` ("must be greater than or equal to {{count}}") validates_numericality_of (with :equal_to option) `:equal_to` ("must be equal to {{count}}") validates_numericality_of (with :less_than option) `:less_than` ("must be less than {{count}}") validates_numericality_of (with :less_than_or_equal_to option) `:less_than_or_equal_to` ("must be less than or equal to {{count}}") validates_presence_of `:blank` ("can't be blank") validates_uniqueness_of `:taken` ("has already been taken") 
+7
source

In response to Serg's answer, you can find the list of keys for the built-in validators here:

http://guides.rubyonrails.org/i18n.html#error-message-interpolation

+2
source

It finds an error message in the namespace chain. Consider a user model with a name attribute check as follows:

 class User < ActiveRecord::Base validates :name, presence: true end 

The key for reporting an error in this case is: blank. Active Record will look for this key in namespaces:

 activerecord.errors.models.[model_name].attributes.[attribute_name] activerecord.errors.models.[model_name] activerecord.errors.messages errors.attributes.[attribute_name] errors.messages 

Thus, in our example, he will try the following keys in this order and return the first result:

 activerecord.errors.models.user.attributes.name.blank activerecord.errors.models.user.blank activerecord.errors.messages.blank errors.attributes.name.blank errors.messages.blank 

Hope this helps. Thanks

+1
source

Source: https://habr.com/ru/post/1493877/


All Articles