我是rails的新手,我有一个关于多对多关联的问题。到目前为止,我有一个运行良好的rails应用程序。它有任务,任务和子任务模型。子任务可以属于任务,任务可以有许多任务。任务可以有许多任务,任务可以有很多任务。到目前为止,我能够为任务添加新任务,为任务添加新任务。我也可以单独添加任务或任务。但是,我的问题围绕着将两个现有记录或现有记录与新记录相关联。例如,如果我正在创建一个新任务,是否可以使用collection_select使用Task.all填充下拉列表,并从下拉列表中选择进入@ mission.tasks?
答案 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][]"
,可以隐藏到此模式中。最后的[]告诉它将值放入数组中。