What is the Rails3 version of errors.add_to_base?

2019-03-11 14:34发布

I want to write a custom validation in Rails 3, but following this example I get:

'ActiveModel::DeprecatedErrorMethods.add_to_base' call is deprecated in Rails 3.0

What is the rails3 version of:

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条回答
疯言疯语
2楼-- · 2019-03-11 15:24

Try to use in below format,

errors[:base] << "Your Message"

It wont insert anything before your validation messages.

查看更多
欢心
3楼-- · 2019-03-11 15:28

From http://apidock.com/rails/ActiveRecord/Errors/add_to_base:

Use model_instance.errors[:base] << "Msg" instead of deprecated model_instance.errors.add_to_base("Msg") for Rails 3.

查看更多
叼着烟拽天下
4楼-- · 2019-03-11 15:36

This should work in rails 3.1.3:

errors.add :base, "message"
查看更多
叼着烟拽天下
5楼-- · 2019-03-11 15:39

For me this "hack" worked best:

instance.errors.add("", "Msg")

When I tried to specify "base" as the first argument, the word base kept getting inserted into my validation messages.

查看更多
登录 后发表回答