我有一个注销链接应该路由到用户#do_logout,但不管我做什么,如果我点击链接,它会路由到用户#show。这是代码:
路线:
resources :users do
member do
get :profile
post :profile
end
collection do
get "signup", to: 'users#new'
get "login"
post "do_login"
post "do_logout"
end
end
链接:
li = link_to "Sign Out", do_logout_users_path
用户控制器操作:
def do_logout
session[:user_id] = nil
redirect_to :root
end
非常感谢任何帮助。这让我疯了。
答案 0 :(得分:1)
您的代码无效,因为您为POST
设置了do_logout
路由,并且您的注销链接正在发出GET
请求。
要从视图中执行POST
请求,您必须创建表单
= form_tag do_logout_users_path do
= submit_tag 'Sign Out'
或强>
您可以使用delete
方法
在路线
delete "do_logout"
和链接
= link_to "Sign Out", do_logout_users_path, :method => :delete