web-dev-qa-db-fra.com

Quelle est la version Rails3 de errors.add_to_base?

Je veux écrire une validation personnalisée dans Rails 3, mais après cet exemple je reçois:

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

Quelle est la version de Rails3 de:

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

Cela devrait fonctionner dans Rails 3.1.3: 

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

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

Utilisez model_instance.errors[:base] << "Msg" au lieu de model_instance.errors.add_to_base("Msg"), obsolète, pour Rails 3.

38
Brian Donovan

Pour moi, ce "hack" fonctionnait le mieux:

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

Lorsque j'ai essayé de spécifier "base" comme premier argument, la base de Word a continué à être insérée dans mes messages de validation.

3
Lance Carlson

Essayez d'utiliser dans le format ci-dessous,

errors [: base] << "Votre message"

Il n'insérera rien avant vos messages de validation.

0
ramprabhu