我知道您可以在以下区域更改ActiveRecord错误消息:
en:
activerecord:
errors:
models:
user:
attributes:
email:
blank: "is required"
但这是一个非常具体的树——我怎么知道ActiveRecord在寻找什么?有没有一种方法可以检查错误以查看ActiveRecord正在搜索的路径?或者有没有一种方法可以生成一个包含所有消息的完整en.yml
?
ActiveModel::Error
类(如果您调用record.errors
,则会得到它(有一个details
属性,它是属性及其错误(包括错误键(的散列。
foo.valid?
=> false
foo.errors.details
=> {:user=>[{:error=>:blank}]}
ActiveModel源有一个en.yml
,它将为您提供一组规范的键。rails-i18n
-gem包括许多标准键的翻译,但也存在一定的差距(即,有些区域设置是完整的,有些不是(。
正如@Mirror318所说,您可以通过运行I18n.t 'errors'
来查看当前区域设置的一组错误消息翻译。如果您当前的语言环境是en.yml
,那么它将与规范列表相同;否则,它就是可用的翻译消息集。
在Rails控制台中,您可以输入:
I18n.t 'errors'
这将返回所有当前错误消息的散列。您可以通过区域设置.yml
文件调整该哈希