Rails - Comment valider un champ uniquement si un autre champ a une certaine valeur?
Je suis assez nouveau à Rails et maintenant, je suis tombé sur un problème dont je n'étais pas en mesure de résoudre avec mon ami Google 🙂
Dans mon formulaire, j'ai un Select avec trois valeurs: AppleBanane et Cerise. Si je choisis Apple de l'sélectionnez j'en cacher un autre, Sélectionnez - et un champ Texte avec un peu de Javascript, parce que quand Apple est choisi, il n'est pas nécessaire de remplir ces deux autres champs plus.
Alors maintenant, j'ai un problème avec la validation de mon formulaire quand il est soumis.
J'ai trouvé des problèmes similaires, par exemple dans le cas de
"Seulement de valider un champ si l'autre est vide."
Ce Problème a été résolu comme ceci:
validates_presence_of :mobile_number, :unless => :home_phone?
Donc j'ai juste essayé la première chose qui surgit dans mon esprit:
validates_presence_of :state, :granted_at, :if => :type != 1
Mais quand je le lance, j'obtiens cette erreur:
undefined method `validate' for true:TrueClass
Alors maintenant, je n'ai pas trouver comment je peux accéder aux valeurs de l'objet qui a été créé...
Je vous remercie d'Avance pour votre aide et j'espère que ma question n'est pas aussi évidente qu'il y paraît 🙂
source d'informationauteur TehQuila
Vous devez vous connecter pour publier un commentaire.
Parce que c'est le code de l'exécutable, vous devez envelopper dans une lambda ou un Proc objet:
Vous pouvez utiliser
if
drapeau et lambda:Ou tout simplement créer de la méthode privée:
bien que le mentionnés ci-dessus sont des moyens pratiques exemplaires, mais vous pouvez également faire simple comme ceci:
Appuyant sur les réponses précédentes, vous pouvez également utiliser un plus court "flèche" de la syntaxe