Ruby on rails 在错误消息中本地化activerecord模型名称

Ruby on rails 在错误消息中本地化activerecord模型名称,ruby-on-rails,localization,Ruby On Rails,Localization,我有一个查询类,我希望它的人类可读名称在活动记录错误消息中为“Search”。activerecord本地化树如何查找此案例 我试过: en: activerecord: models: query: "Search" errors: models: query: attributes: name: unique_within_scope: "blah blah"

我有一个查询类,我希望它的人类可读名称在活动记录错误消息中为“Search”。activerecord本地化树如何查找此案例

我试过:

en:
  activerecord:
    models:
      query: "Search"
    errors:
      models:
        query:
          attributes:
            name: 
              unique_within_scope: "blah blah"
属性stuff通过以下方式工作:

errors.add(:name, I18n.t('activerecord.errors.models.query.attributes.name.unique_within_scope'))
在模型中。但是,我希望在\u范围内翻译unique\u的错误消息会导致:

“搜索保存失败: 诸如此类”

而不是:

“查询保存失败: 诸如此类”

就像现在一样


谢谢你的帮助。谢谢

它实际上起作用了,我只需要重新启动服务器。

当你的方法起作用时,这会更干净:

errors.add(:name, :unique_within_scope)
然后简单地定义一个资源字符串

activerecord.errors.models.query.attributes.name.unique_within_scope
换句话说,如果您传入一个符号,它将假定它是一个资源键,并将在您的资源包中查找它

另一个好处是,您还可以定义

activerecord.errors.messages.unique_within_scope
为这种类型的错误(由不同的模型或不同的属性使用)设置默认消息,如果需要,您可以为特定的模型覆盖该消息