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