В моем приложении у меня есть 2 модели Foo и Bar. Foo 'has_one' Bar and Bar 'принадлежит_to' Foo.Rails 4 и simple_form для связанного маршрута
Мой файл маршрут выглядит следующим образом:
namespace :baz do
resources :foo do
resources :bar
end
end
Я использую simple_form gem. Таким образом, для вложенного маршрута, как один, упомянутых выше, я хотел бы ожидать следующее работы:
= simple_form_for [:baz , :foo, @bar] do |f|
Эта линия отлично работает при создании нового @bar. Когда я пытаюсь изменить существующий @bar, он не менее с этим сообщением об ошибке:
No route matches {:action=>"show", :controller=>"baz/bar", :id=>nil, ...
Я сделал некоторые исследования, и кажется, что это что-то делать с моим «form_for» Params. Я попытался изменить тег к этому:
= simple_form_for [:baz , @foo, @bar] do |f|
... и я сделал так, чтобы вызвать экземпляр @foo в моем контроллере, но тогда я представил с ошибкой, что путь не существует ,
Может ли кто-нибудь помочь мне увидеть, что я делаю неправильно, пожалуйста?
Thanks @LongNguyen. Я попробовал это, и он действительно работает. Однако он потребует, чтобы у меня была отдельная форма для создания или редактирования моей записи, которую я пытаюсь избежать. – Herm
В этом случае вы можете проверить, обновлено ли текущее действие или нет, а затем перейти на правильный путь. Я сейчас делаю это в своем проекте :) –