Подтвердить что ты не робот

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| %>

Как я могу заставить его работать для обоих? Спасибо.

4b9b3361

Ответ 1

Вы должны использовать

<% = simple_form_for [@user, @shoe] do |f| %>

и пусть simple_form выполняет работу...

В этом случае, если есть @user, простая форма будет использовать его (как для нового), если нет (например, для редактирования), простая форма не будет использовать его...