0

嗨,我正在关注敏捷 Web 开发电子书,但我似乎无法激活注销操作

这是相关部分(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 %>

错误消息是 No route matches [GET] "/logout"

我知道它应该使用删除方法,但我所做的似乎无济于事

4

2 回答 2

0

您可能需要match在您的路线中添加一个。抱歉,我没有可以参考的书。

把它放在你的上面controller :sessions ...

match 'logout' => 'sessions#destroy', :as => :logout

如果你没有把上面的行,你的注销路径应该是sessions_logout_path,而不是logout_path

参考: http: //guides.rubyonrails.org/routing.html#naming-routes

于 2012-11-18T04:04:15.940 回答
0

match '/logout' => 'sessions#destroy', :via => :delete

或者

controller :sessions do
  member do
     delete :destroy, :as => :logout
  end
end
于 2012-11-18T13:02:53.623 回答