web-dev-qa-db-ja.com

errors.add_to_baseのRails3バージョンとは何ですか?

Rails 3でカスタム検証を記述したいのですが、次の この例 次のようになります。

'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
37
Marius Butuc

これはRails 3.1.3:

errors.add :base, "message"
44
Drew Johnson

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

Rails 3)には、非推奨のmodel_instance.errors.add_to_base("Msg")の代わりに_model_instance.errors[:base] << "Msg"_を使用してください。

38
Brian Donovan

私にとって、この「ハック」は最も効果的でした:

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

最初の引数として"base"を指定しようとすると、Wordベースが検証メッセージに挿入され続けました。

3
Lance Carlson

以下の形式で使用してみてください。

エラー[:base] << "メッセージ"

検証メッセージの前には何も挿入されません。

0
ramprabhu