Rails关联 - 如何将'has_many'对象添加到'owner'

时间:2011-04-27 03:35:26

标签: ruby-on-rails-3 associations

在我的应用中,user有许多score_cardsscore_card属于user

问题是,每当我创建一个新的score_card,即ScoreCardsController.create被调用时,如何将这个新创建的score_card添加到current_user(我' m使用devise,因此current_user是一个有效的User对象。

3 个答案:

答案 0 :(得分:68)

current_user.score_cards << score_card

OR

score_card.user = current_user
score_card.save

答案 1 :(得分:9)

使用关联构建器方法:

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

如果您不关心控制器中的验证,则build可以使用createcreate!

答案 2 :(得分:7)

如果有人正在寻找将多个对象添加到关联对象的方法,我会把它扔出去:

score_cards = ScoreCard.all
current_user.score_cards << score_cards

不需要current_user.save