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

时间:2011-01-23 04:52:06

标签: ruby-on-rails localization

我有一个Query类,我希望它的human_readable名称在活动记录错误消息中为“Search”。 activerecord本地化树如何查找这种情况?

我试过了:

en:
  activerecord:
    models:
      query: "Search"
    errors:
      models:
        query:
          attributes:
            name: 
              unique_within_scope: "blah blah"

并且属性东西通过以下方式工作:

errors.add(:name, I18n.t('activerecord.errors.models.query.attributes.name.unique_within_scope'))

在模型中。但我希望将unique_within_scope的错误消息转换为:

“搜索保存失败: blah blah“

而不是:

“查询保存失败: blah blah“

就像现在一样。

任何帮助表示赞赏。谢谢!

2 个答案:

答案 0 :(得分:1)

它确实有效,我只需要重启服务器。

答案 1 :(得分:0)

当你的方法奏效时,这会更清洁:

errors.add(:name, :unique_within_scope)

然后只需定义资源字符串

activerecord.errors.models.query.attributes.name.unique_within_scope

换句话说,如果您传入一个符号,它会认为它是一个资源键,并会在您的资源包中查找它。

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

activerecord.errors.messages.unique_within_scope

为此类型的错误(由不同的模型或不同的属性使用)设置默认消息,然后您可以根据需要覆盖特定模型。