什么是Rails3版本的errors.add_to_base?

Mar*_*tuc 37 validation model ruby-on-rails-3

我想在Rails 3中编写自定义验证,但是按照这个例子,我得到:

'ActiveModel::DeprecatedErrorMethods.add_to_base' call is deprecated in Rails 3.0
Run Code Online (Sandbox Code Playgroud)

什么是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
Run Code Online (Sandbox Code Playgroud)

Dre*_*son 44

这应该在rails 3.1.3中有效:

errors.add :base, "message"
Run Code Online (Sandbox Code Playgroud)


Bri*_*van 38

来自http://apidock.com/rails/ActiveRecord/Errors/add_to_base:

对Rails 3 使用model_instance.errors[:base] << "Msg"而不是弃用model_instance.errors.add_to_base("Msg").

  • 如果您希望Rails从区域设置中查找消息,您可以使用errors.add(:base,:your_error_symbol)并将其存储在[locale] .activerecord.errors.[model] .your_error_symbol (2认同)