web-dev-qa-db-ja.com

Rails関連-「has_many」オブジェクトを「所有者」に追加する方法

私のアプリでは、userには多くのscore_cardsがあり、score_carduserに属しています

問題は、新しいscore_cardを作成するたびに、つまりScoreCardsController.createが呼び出されたときに、新しく作成したscore_cardcurrent_userに追加するにはどうすればよいですか(私はdeviseを使用しています)なので、current_userは有効なUserオブジェクトです)。

40
ryanprayogo
current_user.score_cards << score_card

OR

score_card.user = current_user
score_card.save
70
grzuy

アソシエーションビルダーメソッドを使用します。

current_user.score_cards.build(params[:score_card])

buildの代わりに、コントローラでの検証を気にしない場合は、createまたはcreate!を使用できます。

11
Ryan Bigg

関連付けられたオブジェクトに複数のオブジェクトを追加する方法を誰かが探している場合に備えて、これを捨てます。

score_cards = ScoreCard.all
current_user.score_cards << score_cards

Current_user.saveは不要

10
Abram