我想在Rails 3中编写自定义验证,但在this example之后我得到:
'ActiveModel::DeprecatedErrorMethods.add_to_base' call is deprecated in Rails 3.0
什么是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
答案 0 :(得分:44)
这应该适用于rails 3.1.3:
errors.add :base, "message"
答案 1 :(得分:38)
来自http://apidock.com/rails/ActiveRecord/Errors/add_to_base:
对Rails 3使用
model_instance.errors[:base] << "Msg"
而不是弃用的model_instance.errors.add_to_base("Msg")
。
答案 2 :(得分:3)
对我来说,这个“黑客”效果最好:
instance.errors.add("", "Msg")
当我尝试将"base"
指定为第一个参数时,单词base继续插入到我的验证消息中。
答案 3 :(得分:0)
尝试使用以下格式,
errors [:base]&lt;&lt; “你的消息”
在验证消息之前不会插入任何内容。