验证can't be blank
失败时访问Rails的默认:presence => true
错误消息的API是什么?
我的模型设置如下:
class TextDocument < Document
validate :content_not_blank # 'content' is an attribute
private
def content_not_blank
if content.blank?
errors.add(:content, ....?) # I want to access 'can't be blank'
end
end
end
答案 0 :(得分:25)
I18n.t('errors.messages.blank')
应该给你你想要的东西。
答案 1 :(得分:22)
假设您使用的是标准的yaml翻译,您可以在ActiveModel
中找到该文件要覆盖它,您需要在config/locales
文件夹中删除一个文件,例如:
en:
errors:
messages:
blank: "can't be whatever your custom message"
答案 2 :(得分:1)
您可以使用默认方法执行此操作:
validates_presence_of(:content)
这将在当前本地生成正确的消息(不能为空)(如果您设置了config / locales / ..yml文件
如果你真的想编写自己的验证器
errors.add(:content, I18n.translate(:blank))