Ruby on rails 导轨使用连杆的正确方法
我正在开始使用rails和Desive进行身份验证,我想创建一个链接,以便在用户登录到管理页面时注销 编写代码链接的正确方法是什么 这是我的Ruby on rails 导轨使用连杆的正确方法,ruby-on-rails,Ruby On Rails,我正在开始使用rails和Desive进行身份验证,我想创建一个链接,以便在用户登录到管理页面时注销 编写代码链接的正确方法是什么 这是我的耙路线: admin_index /admin/index(.:format) {:controller=>"admin/home", :action=>"index"} new_user_session GET /users/sign_in(.:format) {:action=&
耙路线
:
admin_index /admin/index(.:format) {:controller=>"admin/home", :action=>"index"}
new_user_session GET /users/sign_in(.:format) {:action=>"new", :controller=>"devise/sessions"}
user_session POST /users/sign_in(.:format) {:action=>"create", :controller=>"devise/sessions"}
destroy_user_session DELETE /users/sign_out(.:format) {:action=>"destroy", :controller=>"devise/sessions"}
user_password POST /users/password(.:format) {:action=>"create", :controller=>"devise/passwords"}
new_user_password GET /users/password/new(.:format) {:action=>"new", :controller=>"devise/passwords"}
edit_user_password GET /users/password/edit(.:format) {:action=>"edit", :controller=>"devise/passwords"}
PUT /users/password(.:format) {:action=>"update", :controller=>"devise/passwords"}
cancel_user_registration GET /users/cancel(.:format) {:action=>"cancel", :controller=>"devise/registrations"}
user_registration POST /users(.:format) {:action=>"create", :controller=>"devise/registrations"}
new_user_registration GET /users/sign_up(.:format) {:action=>"new", :controller=>"devise/registrations"}
edit_user_registration GET /users/edit(.:format) {:action=>"edit", :controller=>"devise/registrations"}
PUT /users(.:format) {:action=>"update", :controller=>"devise/registrations"}
DELETE /users(.:format) {:action=>"destroy", :controller=>"devise/registrations"}
home_index GET /home/index(.:format) {:controller=>"home", :action=>"index"}
root / {:controller=>"home", :action=>"index"}
我尝试了
,但当我单击链接时,它显示错误:
No route matches [GET] "/users/sign_out"
由此,建议在以下方面:
'删除'%>
问题的根本错误在于您没有在“链接到”中使用RESTful路由
您应该将代码更正为:
<%= link_to "Sign Out", destroy_user_session_path, :method => :delete %>
你说我没有使用restful路线是什么意思?几乎所有这些路线都是由te Desive gem生成的。好吧,我错了。我纠正了令人困惑的文字。您应该以RESTful方式调用'link_to'(使用参数'method'),所以我只需要
:method=>:delete
,因为它是delete方法而不是post方法?对于所有指向delete方法的链接都是这样吗?是的,您是对的,始终对RESTful路由使用:method=>:delete/:put/:post
。指向示例应用程序的链接是broken@RomanPushkin谢谢,我已经将代码更新为一个新的示例,它以相同的方式工作,并且不是来自一个死的存储库,可能是
<%= link_to "Sign Out", destroy_user_session_path, :method => :delete %>
DELETE /users(.:format) {:action=>"destroy", :controller=>"devise/registrations" }