Validation 什么是errors.add_到_库的Rails3版本?
我想在Rails 3中编写一个自定义验证,但得到以下结果: 什么是rails3版本的:Validation 什么是errors.add_到_库的Rails3版本?,validation,ruby-on-rails-3,model,Validation,Ruby On Rails 3,Model,我想在Rails 3中编写一个自定义验证,但得到以下结果: 什么是rails3版本的: def validate errors.add_to_base "If you are attaching a file you must enter a label for it" if !attachment.blank? and attachment_label.blank? end 发件人: 使用model\u实例。错误[:base]对我来说,这种“黑客”效果最好: instance.erro
def validate
errors.add_to_base "If you are attaching a file you must enter a label for it" if !attachment.blank? and attachment_label.blank?
end
发件人:
使用model\u实例。错误[:base]对我来说,这种“黑客”效果最好:
instance.errors.add("", "Msg")
当我试图将“base”
指定为第一个参数时,单词base一直被插入到我的验证消息中。这应该在rails 3.1.3中起作用:
errors.add :base, "message"
尝试使用以下格式
错误[:base]这是因为您使用了字符串“base”
而不是符号:base
。有一点不同:不是这样,它添加了base
,甚至作为一个符号,至少对于Rails 3.1.3是这样。我刚刚在我当前的项目(Rails 3.1.2)中检查了这一点,并且base没有被插入到我的消息中。这可能在3.1.3中有所改变,但我会感到惊讶。我也有同样的问题,但我的问题是呈现错误消息。使用full_messages
而不是messages
可以很好地从消息中删除“Base”。@BrianDonovan链接不再工作。对于其他人,请查看是否希望Rails从区域设置中查找消息,您可以使用errors.add(:base,:your_error_symbol)并将其存储在[locale].activerecord.errors.[model].your_error_symbol中
errors.add :base, "message"