【问题标题】:Localizing activerecord model name in error messages在错误消息中本地化 activerecord 模型名称
【发布时间】:2011-01-23 04:52:05
【问题描述】:

我有一个查询类,我希望它的人类可读名称在活动记录错误消息中为“搜索”。 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 的错误消息的翻译会导致:

"搜索保存失败: 呜呜呜”

代替:

"查询保存失败: 呜呜呜”

就像现在一样。

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

【问题讨论】:

    标签: ruby-on-rails localization


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      当你的方法奏效时,这会更干净:

      errors.add(:name, :unique_within_scope)
      

      然后简单地定义一个资源字符串

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

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

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

      activerecord.errors.messages.unique_within_scope
      

      为这种类型的错误(由不同的模型或不同的属性使用)设置默认消息,然后您可以在必要时覆盖特定模型。

      【讨论】:

        猜你喜欢
        • 2017-04-11
        • 2011-10-30
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 1970-01-01
        • 1970-01-01
        • 2012-05-27
        • 2011-06-07
        相关资源
        最近更新 更多