嵌套属性中的错误消息

时间:2016-08-08 20:15:21

标签: ruby-on-rails ruby activemodel

我有三个名为AccountUserAccountPermission的模型。

我在创建用户时通过Account创建了AccountPermission

但是,如果出现与Account:name相关的问题,系统会抛出类似下面的内容。

Account permissions account name has already been taken

所以,我只需要修复此错误消息。

我尝试在验证中添加消息属性。它只是附加到实际消息。

我也尝试过locale。仍然只是追加

en:
  activerecord:
    errors:
      models:
        account:
          attributes:
            name:
              taken: 'bla bla'

据我在ActiveModel中看到的那样。此消息的结构来自下面的

ActiveModel中的locale / en.yml

en:
  errors:
    format: "%{attribute} %{message}"

那么,有没有办法编辑这个消息无痛?如果我甚至删除了型号名称,那就足够了。

1 个答案:

答案 0 :(得分:1)

错误消息与错误本身和属性名称连接,属性名称在提供的错误中为account_permissions/account.name

您可以为属性名称添加区域设置,如下所示:

en:
  activerecord:
    attributes:
      account: # this is model name
        name: "Name"

en:
  activerecord:
    attributes:
      account_permissions/account:
        name: "Account name"