什么是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信息之前插入任何东西。