Rails将现有记录添加到多对多关系中的新记录中

时间:2016-01-05 13:48:22

标签: ruby-on-rails ruby

我是rails的新手,我有一个关于多对多关联的问题。到目前为止,我有一个运行良好的rails应用程序。它有任务,任务和子任务模型。子任务可以属于任务,任务可以有许多任务。任务可以有许多任务,任务可以有很多任务。到目前为止,我能够为任务添加新任务,为任务添加新任务。我也可以单独添加任务或任务。但是,我的问题围绕着将两个现有记录或现有记录与新记录相关联。例如,如果我正在创建一个新任务,是否可以使用collection_select使用Task.all填充下拉列表,并从下拉列表中选择进入@ mission.tasks?

1 个答案:

答案 0 :(得分:0)

挂钩"<association>_ids" getter和setter方法。例如

mission = Mission.new(:name => "Foo", :task_ids => [123,456])
mission.save

mission现在应与任务123&amp; 456。

在您的表单中,您通常会设置名称为&#34; mission [name]&#34;,&#34; mission [description]&#34;等,然后在控制器中执行类似

的操作
mission = Mission.new(params[:mission])

在您的视图中,通过选择或复选框,将name属性设置为"mission[task_ids][]",可以隐藏到此模式中。最后的[]告诉它将值放入数组中。