С формами Rails (4.2), как я могу построить форму так, чтобы полезная нагрузка запроса представляла вложенную ассоциацию как хеш, который является ключом первичного ключа ассоциации?
У меня есть вложеннаяформа, как показано в документации .Если вы прокрутите вниз, вы увидите следующий пример:
<%= form_for @person do |person_form| %>
...
<%= person_form.fields_for :projects do |project_fields| %>
Project #<%= project_fields.index %>
...
<% end %>
...
<% end %>
Когда форма отправляет запрос HTTP PATCH, полезная нагрузка, которую получает моя конечная точка, имеет следующий вид:
"person"=>{"project_attributes"=>{"0"=>{...}, "1"=>{...}, "2"=>{...}...}}
Вместоключи project_attributes
, представляющие численно упорядоченный индекс, я хочу, чтобы ключ был первичным ключом id
проекта.
РЕДАКТИРОВАТЬ:
Причина, по которой я хочу ключбыть основным ключом проекта, чтобы в моем контроллере мне было проще обновлять проекты следующим образом:
# Option 1
Project.update(params[:project_attributes].keys, params[:project_attributes].values)
# Option 2
params[:project_attributes].keys.each do |project_id|
Project.update(project_id, params[:project_attributes][project_id])
end