什么是Rails3版本的errors.add_to_base?
我想在Rails 3中编写一个自定义的validation,但是在这个例子中我得到了:
'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
这应该在rails 3.1.3中工作:
errors.add :base, "message"
从http://apidock.com/rails/ActiveRecord/Errors/add_to_base :
对于Rails 3,使用
model_instance.errors[:base] << "Msg"
而不是弃用的model_instance.errors.add_to_base("Msg")
。
对我来说,这个“黑客”效果最好:
instance.errors.add("", "Msg")
当我试图指定"base"
作为第一个参数时,base这个单词不断被插入到我的validation消息中。
尝试使用以下格式,
错误[:base] <<“Your Message”
它不会在你的validation信息之前插入任何东西。