ActiveRecord错误,如何找到更改消息的区域设置路径



我知道您可以在以下区域更改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文件调整该哈希

最新更新