ruby on rails button_to不激活delete方法

时间:2012-11-18 03:04:43

标签: ruby-on-rails

您好我正在关注敏捷网络开发电子书,我似乎无法激活注销操作

这里是重要的部分(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”

我知道它应该使用删除方法但我没做什么似乎有帮助

2 个答案:

答案 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