Rails i18n - 无法更改错误的格式

Enr*_*ent 5 ruby-on-rails internationalization rails-i18n

在我的 Rails 应用程序中,我有以下翻译

de:
  activerecord:
    errors:
      models:
        applicant:
          attributes:
            name:
              blank: "Bitte nenne uns Deinen %{attribute}"
Run Code Online (Sandbox Code Playgroud)

但是当我检查模型上的错误时,我收到以下消息:

申请人姓名 Bitte nenne uns Deinen 姓名

邮件开头怎么会有“申请人姓名”?

我怎样才能删除它?

Dee*_*ale 5

您必须使用full_messages来显示错误。像这样的东西:

applicant.errors.full_messages
#=> ["Applicant name Bitte nenne uns Deinen Name"]
Run Code Online (Sandbox Code Playgroud)

将其更改为

applicant.errors.messages
#=> ["Bitte nenne uns Deinen Name"]
Run Code Online (Sandbox Code Playgroud)

注意: full_messages将在错误消息之前附加属性名称。这就是为什么您会被Applicant name附加到消息中

解决方案2

如果你想改变full_messages那就尝试改变

en:
  errors:
    format: "%{attribute} %{message}"
Run Code Online (Sandbox Code Playgroud)

en:
  errors:
    format: "%{message}"
Run Code Online (Sandbox Code Playgroud)