У меня есть модели Владелец, Pet:
- Владелец: has_many: домашние животные
- Домашнее животное: принадлежит_ владельцу.
Очень стандартно. В маршрутах у меня есть
Rails.application.routes.draw do
resources :owners do
resources :pets
end
end
И в форме, где я создаю или обновляю питомца, мне нужно также указать владельца. Я пробовал разные способы сделать это:
<%= form_with(model: [@owner, pet], local: true) do |form| %>
<%= form_with(url: [@owner, pet], local: true) do |form| %>
<%= form_with(model: @owner, url: [@owner, pet], local: true) do |form| %>
И в каждом случае owner_id заканчивается на неправильном «уровне»:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"sDU1E/rdnRbl/7iXwWSo1mV4ABqgrdIl0HylmLSKvrnEzPUsU+seHaDZeFuZVb6MdBfVNHR7Wgzqmv/7XgMNGQ==",
"pet"=>{"name"=>"King Smith", "age"=>"12", "breed"=>"Foo"},
"commit"=>"Create Pet", "owner_id"=>"2"}
Я думал, до 5.2, первый подход был верным. Вы видите, где я иду не так?