【发布时间】:2011-01-25 09:56:38
【问题描述】:
这一直困扰着我一段时间。我的所有模型都会出现这个问题,但我将使用其中一个,测验,作为示例。
测验具有以下验证:
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,每个错误消息都有属性,然后是完整消息:
>> 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"
有什么想法吗?
【问题讨论】:
-
是否有任何特殊原因需要在每条验证消息中添加
{{attribute}}?通常,那里的条目将仅包含错误消息,例如“未包含在列表中”。该属性将根据您的语言环境文件中的activerecord.errors.full_messages.format自动添加,默认为"%{attribute} %{message}" -
嗨,西卡丘。这就是他们在供应商轨道中的方式 - 我只是将该文件的内容复制到我的 en.yml 文件中(已注释掉),然后取消注释并根据需要进行修改。
标签: ruby-on-rails validation activerecord