Dans un processus, je voudrais valider que l'instruction fournie renvoie true.Validation personnalisée sur une ligne
J'ai essayé les éléments suivants:
validate :home, Proc.new { |c| c.home.kitchen.present? }
Il ne fonctionne pas. Il ne montre pas d'erreurs de validation lorsqu'il n'y a pas de cuisine.
Dois-je écrire comme ceci:
validate :home_kitchen_must_be_present
def home_kitchen_must_be_present
....
Ou est-il une syntaxe disponible pour l'écrire dans une ligne? Merci
Quelle version Rails utilisez-vous? –
Tout d'abord, vous devez ajouter une erreur à l'objet pour l'invalider. Deuxièmement, que sont «la maison» et «cuisine» ici? Les validations sont pour les attributs (colonnes en db). Sont ces deux attributs différents de votre modèle? Peut-être que vous pouvez nous montrer votre schéma et expliquer plus ce que vous voulez réaliser ici. – EJ2015
Je recommande d'afficher vos associations de modèles et/ou votre schéma. Il semble que vous essayez de vérifier qu'un objet imbriqué est présent lors de l'ajout/de la mise à jour d'un objet principal qui nécessiterait probablement une méthode de validation personnalisée. Si la cuisine est la colonne à l'intérieur de la table, alors c'est une boîte de vers différente. Nous avons juste besoin de savoir avec quoi tu travailles. –