什么是Rails3版本的errors.add_to_base?

时间:2011-01-20 20:17:44

标签: validation ruby-on-rails-3 model

我想在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

4 个答案:

答案 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; “你的消息”

在验证消息之前不会插入任何内容。