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
Cela devrait fonctionner dans Rails 3.1.3:
errors.add :base, "message"
De http://apidock.com/Rails/ActiveRecord/Errors/add_to_base :
Utilisez
model_instance.errors[:base] << "Msg"
au lieu demodel_instance.errors.add_to_base("Msg")
, obsolète, pour Rails 3.
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.
Essayez d'utiliser dans le format ci-dessous,
errors [: base] << "Votre message"
Il n'insérera rien avant vos messages de validation.