krx*_*krx 19 ruby-on-rails simple-form
resources :users, shallow: true do
resources :shoes
end
Run Code Online (Sandbox Code Playgroud)
这给了我两个不同的创建和编辑路线
user_shoes_path
shoes_path
Run Code Online (Sandbox Code Playgroud)
在我的鞋子里,_form.html.erb
如果我留下表格标签:url作为默认值,当我提交一个新的或更新的鞋子时,我得到一个丢失的路线错误.
如果我提供表单中的url,我可以将其用于新的或编辑更新,但我无法让它同时工作.
这适用于新的:
<%= simple_form_for :shoe, url: user_shoes_path do |f| %>
Run Code Online (Sandbox Code Playgroud)
这适用于编辑,但一旦尝试实际更新就会失败,因为它重定向到/:param_id
:
<%= simple_form_for :shoe, url: shoes_path(@shoe) do |f| %>
Run Code Online (Sandbox Code Playgroud)
我怎样才能使它适用于两者?谢谢.
Dan*_*nny 24
你应该用
<% = simple_form_for [@user, @shoe] do |f| %>
Run Code Online (Sandbox Code Playgroud)
让simple_form做这项工作......
这种情况,如果有@user,简单表单将使用它(对于新的),如果没有(比如编辑),简单表单将不会使用它...