Rails嵌套属性本地化

时间:2017-09-01 04:06:25

标签: ruby-on-rails ruby ruby-on-rails-4

我的错误信息如下:
"特质链接特征名称不能为空白"

item_template(此表单的根目录)has_many trait_links
每个trait_link属于一个特征(多态)

这是我想要的结果:
"特质名称不能为空白"

我尝试了三件事:

1

en:
  activerecord:
    attributes:
      item_template/trait_links:
        trait: "trait"

2

en:
  activerecord:
    attributes:
      item_template:
        trait_links: ""

3

en:
  activerecord:
    attributes:
      item_template/trait_links: ""

这些都不起作用。我怎么能这样做?

由于

编辑:错误是故意的。我想改变它的文字。

1 个答案:

答案 0 :(得分:0)

错误消息对我来说不像是与本地化相关的错误消息。本地化错误消息通常表示类似"缺少翻译en.activerecord.attributes.etc"。

您看到的错误消息看起来像验证错误消息。您需要查看控制器接收的参数,以查看trait_name为空的原因。我打赌您在TraitLinks模型中有一条线,如:

validate :trait_name, presence: true

如果是,那么这就是错误消息的来源。

此消息的I18n密钥为:

en:
  activerecord:
    errors:
      models:
        trait_links:
          attributes:
            trait_name:
              blank: "you really should enter a trait name, dude"

请参阅Rails guides on internationalization, para 4.5.1