Dans mon application, un user
a plusieurs score_cards
et un score_card
appartient à un user
La question est, chaque fois que je crée un nouveau score_card
, c'est à dire, ScoreCardsController.create
est appelé, comment ajouter ce nouvellement créé score_card
à la current_user
(J'utilise devise, donc current_user
est un objet User
valide).
current_user.score_cards << score_card
OR
score_card.user = current_user
score_card.save
Utilisez la méthode du générateur d'association:
current_user.score_cards.build(params[:score_card])
Alternativement à build
, vous pouvez utiliser create
ou create!
si vous ne vous souciez pas des validations dans le contrôleur.
Je vais jeter cela là-bas au cas où quelqu'un chercherait un moyen d'ajouter plusieurs objets à un objet associé:
score_cards = ScoreCard.all
current_user.score_cards << score_cards
Pas besoin de current_user.save