2011-06-21 3 views
0

J'ai un modèle parent (Utilisateur) avec des champs optionnels - prénom, nom de famille et champs obligatoires - email et mot de passe. J'ai un modèle enfant (Booking) qui 'belongs_to' à 'User' et 'accepts_nested_attributes_for: user'. Mon problème est, chaque fois que l'objet de réservation est créé, j'ai besoin de valider la présence de prénom et last_name pour l'utilisateur qui est en cours de création/mise à jour. Fondamentalement, la personne doit entrer first_name et last_name lors de la création de l'objet de réservation. J'ai utilisé le modèle 'User' comme parent dans beaucoup d'autres endroits mais je ne veux pas ajouter la validation dans le modèle 'User'. Je veux la validation dans le modèle 'Booking'. Comment j'accomplis cela?Comment valider les attributs d'un modèle parent lors de la création de l'objet du modèle enfant?

Répondre

0

Si vous utilisez validates_associated, il validera le modèle associé

class Booking 
    belongs_to :user 

    validates_associated :user 
end 

Extra Credit: http://rpheath.com/posts/412-a-better-validates-associated pour obtenir plus dans votre message d'erreur que « L'utilisateur est non valide »

+0

Merci pour l'aide mais cela ne marche pas de validation aide moi. –

+0

Merci pour l'aide, mais cette validation ne m'aide pas. quand j'ajoute 'validates_associated: user' il donne ActionView :: Template :: Error (méthode non définie 'validators_on 'pour NilClass: Class) pour le formulaire où j'accepte les valeurs pour' User '. –

+0

J'ai aussi essayé d'utiliser "accept_nested_attributes_for: utilisateur,: reject_if => proc {| u | u [" prénom "]. Blank?}" Mais cela ne fonctionne pas non plus. –

Questions connexes