這個問題一直在殺我。我玩了瑞恩貝茨複雜的形式,但我無法弄清楚我的問題。 我有這個模式:Rails動態多模型表單屬性
Location has_many :targets
Target has_many :target_classifications
所有位置都顯示在頁面上。用戶可以通過jscript動態創建任意位置的目標,然後在位置3選擇(包含目標的可用分類)和目標值下添加一個表格行。點擊保存之前,可以爲任何位置創建任意數量的目標。
我使用RJS來呈現target_partial,其中有這樣的代碼: 我使用fields_for這樣:
每個選擇。當sumbmitted,我得到這個散列:
"new_targets"=> {"7"=>[{"id"=>"13"}, {"id"=>"15"}, {"value"=>"67", "id"=>""}], "4"=> [{"id"=>"12"}, {"id"=>"15"}, {"value"=>"23", "id"=>""}, {"id"=>"11"}, {"id"=>"16"}, {"value"=>"67", "id"=>""}]},
所以,按位置的每個目標(在這種情況下,「7」和「4」)分隔,但每個目標不分開。我想要的是:
"new_targets"=> {"7"=>[ {"target"=>[{"id"=>"13"}, {"id"=>"15"}, {"tonnes"=>"67"}]} ], "4"=>[ {"target"=>[{"id"=>"12"},{"id"=>"15"},{"tonnes"=>"23"]}, {"target"=>[{"id"=>"11"},{"id"=>"16"},{"tonnes"=>"67"]} ] }
所以我可以遍歷每個位置的每個目標。我似乎無法在我的field_for方法中添加一個新的[目標]大括號(它爆炸了),但這就是我想要做的。有什麼想法嗎?
@brad:我不確定,但我認爲fields_for中的這些「[]」會做你想做的事 – klew 2009-03-22 16:21:48