Эта проблема убивает меня. Я играл со сложными формами Райана Бейтса, но я не могу понять свою проблему.
У меня есть эта схема:
Location has_many :targets
Target has_many :target_classifications
Все местоположения показаны на странице. Пользователь может создать цель для любого местоположения динамически через jscript, который затем добавляет строку таблицы под выбранным местоположением 3 (которая содержит доступные классификации для цели) и целевое значение. Перед нажатием кнопки «Сохранить» можно создать любое количество целей для любого местоположения.
Я использую RJS для визуализации target_partial, который имеет этот код:
Я использую fields_for следующим образом:
для каждого выбора. При получении я получаю этот хэш:
"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"]}
]
}
так что я могу перебирать каждую цель для каждого местоположения. Я не могу добавить новую скобку [target] в моем методе field_for (он взрывается), но это то, что я хочу сделать. Есть мысли?