Fel*_*ger 4 rest ruby-on-rails rails-routing ruby-on-rails-5
我正在链接到Sessions控制器的destroy动作,如下所示:
<%= link_to "Sign out", session_path, method: :delete %>
Run Code Online (Sandbox Code Playgroud)
routes.rb中:
resources :sessions, only: [:new, :create, :destroy]
Run Code Online (Sandbox Code Playgroud)
Rails抱怨上面的链接:
没有路由匹配{:action =>"destroy",:controller =>"sessions"}缺少必需的键:[:id]
当没有对象ID提供链接时,如何链接到destroy操作并在Rails中保留REST /资源方法?
最好将路径控制器的路由视为单一资源
的routes.rb
resource :sessions
Run Code Online (Sandbox Code Playgroud)
Doc:http://guides.rubyonrails.org/routing.html#singular-resources
这将为您提供一条无需ID即可使用的路线
DELETE/sessions sessions#destroy
destroy是成员路由,您需要传入idparams 才能使其工作,但您可以这样做以将其转换为集合路由
resources :sessions, only: [:new, :create] do
delete :destroy, on: :collection
end
Run Code Online (Sandbox Code Playgroud)
希望有帮助!
| 归档时间: |
|
| 查看次数: |
2886 次 |
| 最近记录: |