Add this to your config/locales/en.yml
file:
en:
activerecord:
errors:
# global message format
format: #{message}
full_messages:
# shared message format across models
foo:
blank: Ticket description is required
# model specific message format
brand:
zoo:
blank: Name is required
Now change your validation message to refer to the new message format:
validates_presence_of :bar, :message => "Empty bar is not a good idea"
validates_presence_of :foo, :message => "foo.blank"
validates_presence_of :zoo, :message => "brand.zoo.blank"
Lets try the code:
b = Brand.new
b.valid?
b.errors.full_messages
#=> ["Ticket description is required",
# "Empty bar is not a good idea",
# "Name is required"]
As demonstrated above, you can customize the error message format at three levels.
1) Globally for all the ActiveRecord error messages
activerecord:
errors:
format: #{message}
2) Shared error messages across models
activerecord:
errors:
full_messages:
foo:
blank: Ticket description is required
3) Model specific messages
activerecord:
errors:
full_messages:
brand:
zoo:
blank: Name is required
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…