37 votes

Quelle est la version Rails3 de errors.add_to_base ?

Je veux écrire une validation personnalisée dans Rails 3, mais en suivant les étapes suivantes cet exemple J'ai compris :

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

Quelle est la version 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

44voto

Drew Johnson Points 2697

Cela devrait fonctionner dans rails 3.1.3 :

errors.add :base, "message"

38voto

Brian Donovan Points 3649

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

Utilice model_instance.errors[:base] << "Msg" au lieu de la désuète model_instance.errors.add_to_base("Msg") pour Rails 3.

3voto

Lance Carlson Points 19

Pour moi, ce "hack" a été le plus efficace :

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

Quand j'ai essayé de spécifier "base" comme premier argument, le mot base continuait à être inséré dans mes messages de validation.

0voto

ramprabhu Points 21

Essayez d'utiliser le format ci-dessous,

errors[:base] << "Your Message" (Votre message)

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X