您好我正在关注敏捷网络开发电子书,我似乎无法激活注销操作
这里是重要的部分(TAB键不起作用无法格式化为代码)
rake routes
logout DELETE /logout(.:format) sessions#destroy
来自路线档案
controller :sessions do
get 'login' => :new
post 'login' => :create
delete 'logout' => :destroy
end
我的控制器
def destroy
session[:user_id] = user.id
redirect_to store_url , notice: "Logged out"
end
和我的观点(相关部分)
<%= button_to 'Logout', logout_path, method: :delete %>
错误消息是 没有路线匹配[GET]“/ logout”
我知道它应该使用删除方法但我没做什么似乎有帮助
答案 0 :(得分:0)
您可能需要在路线中添加match
。很抱歉,我没有这本书可以参考。
将其置于controller :sessions ...
match 'logout' => 'sessions#destroy', :as => :logout
如果您没有放置上述行,则您的退出路径应为sessions_logout_path
,而不是logout_path
。
参考: http://guides.rubyonrails.org/routing.html#naming-routes
答案 1 :(得分:0)
match '/logout' => 'sessions#destroy', :via => :delete
或
controller :sessions do
member do
delete :destroy, :as => :logout
end
end