Rails 4 маршрута действия с simple_form и неглубокими вложенными ресурсами
resources :users, shallow: true do
resources :shoes
end
Это дает мне два разных пути для создания и редактирования
user_shoes_path
shoes_path
В моей обуви _form.html.erb
, если я оставлю тег формы: url по умолчанию, я получаю ошибку с отсутствующими маршрутами, когда я отправляю новый или обновленный ботинок.
Если я поставлю url в форме, я могу заставить его работать либо для нового, либо для обновления, но я не могу заставить его работать для обоих.
Это работает для нового:
<%= simple_form_for :shoe, url: user_shoes_path do |f| %>
Это работает для редактирования, но сбой произойдет после того, как он попытается выполнить фактическое обновление, поскольку перенаправляет его на /:param_id
:
<%= simple_form_for :shoe, url: shoes_path(@shoe) do |f| %>
Как я могу заставить его работать для обоих? Спасибо.
Ответы
Ответ 1
Вы должны использовать
<% = simple_form_for [@user, @shoe] do |f| %>
и пусть simple_form выполняет работу...
В этом случае, если есть @user, простая форма будет использовать его (как для нового), если нет (например, для редактирования), простая форма не будет использовать его...