我有一个用户模型和兴趣模型由一个名为Choice的连接表连接(详情如下)。我正在使用HABTM关系,因为我在连接表中也有一个属性。
User.rb
has_many :choices
has_many :interests, :through => :choices
Interest.rb
has_many :choices
has_many :users, :through => :choices
Choice.rb
belongs_to :user
belongs_to :interest
所以问题是如何将记录添加到这个新创建的选择表中。例如=>
@user = User.find(1)
@interest = Interest.find(1)
????? Choice << user.id + interest.id + 4(score attribute) ??????
最后一部分是我遇到问题的部分..我有这3个参数而不是如何添加它们以及语法是什么?
答案 0 :(得分:2)
您有几个选项可以添加选项,但最有意义的是通过确定用户实例来添加选项:
假设:
@user = User.find(1)
@interest = Interest.find(1)
您可以添加如下选项:
@user.choices.create(:interest => @interest, :score => 4)
您也可以在控制器中执行以下操作:
def create
@choice = @user.choices.build(params[:choice])
if @choice.save
# saved
else
# not saved
end
end
这假设您的表单包含choice[:interest_id]
和choice[:score]