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
これはRails 3.1.3:
errors.add :base, "message"
From http://apidock.com/Rails/ActiveRecord/Errors/add_to_base :
Rails 3)には、非推奨の
model_instance.errors.add_to_base("Msg")
の代わりに_model_instance.errors[:base] << "Msg"
_を使用してください。
私にとって、この「ハック」は最も効果的でした:
instance.errors.add("", "Msg")
最初の引数として"base"
を指定しようとすると、Wordベースが検証メッセージに挿入され続けました。
以下の形式で使用してみてください。
エラー[:base] << "メッセージ"
検証メッセージの前には何も挿入されません。