这一直困扰着我一段时间。所有模型都会出现此问题,但我将使用其中的一个测验作为示例。errors.full_messages:属性名称出现两次
测验具有以下验证:
validates_presence_of :size, :style
我使用的I18n,和我有以下我的翻译文件中设置:(这些只是标准的错误消息,但我将他们我en.yml,这样很容易看到的结构,如果我想重写它们对任何特定型号)
activerecord:
errors:
messages:
inclusion: "{{attribute}} is not included in the list"
invalid: "{{attribute}} is invalid"
empty: "{{attribute}} can't be empty"
blank: "{{attribute}} can't be blank"
record_invalid: "Validation failed: {{errors}}"
问题是这样的:如果我做一个新的测验,这将无法通过验证,再看看在quiz.errors.full_messages中,每个错误消息都有属性,然后是完整的消息E:
>> quiz = Quiz.create
=> <unsaved quiz object>
>> quiz.errors.full_messages
=> ["Size Size can't be blank", "Style Style can't be blank"]
我不明白为什么该消息是,例如,"Size Size can't be blank"
而不是"Size can't be blank"
任何想法吗?
有你为什么需要添加`什么特别的原因{{属性}}`在每个验证消息的?通常情况下,那里的条目将只包含错误消息,例如“未包含在列表中”。该属性将根据您的语言环境文件中的`activerecord.errors.full_messages.format`自动添加,默认为``%{attribute}%{message}“` – sikachu 2011-01-25 11:31:41
Hi Sikachu。这就是他们如何在供应商的轨道 - 我只是将该文件的内容复制到我的en.yml文件(注释掉),然后根据需要取消注释和修改。 – 2011-01-27 09:23:26