我一直在有条理地研究《使用Rails进行敏捷Web开发》一书。到目前为止,在我使用session控制器进行注销的开发之前,还没有问题。我只是想让destroy方法在会话控制器中工作。这是我所拥有的:

sessions_controller.rb

def destroy
  session[:user_id] = nil
   redirect_to store_url, :notice => "Logged out"
end


routes.rb

controller :sessions do
  get  'login' => :new
  post 'login' => :create
  delete 'logout' => :destroy
end


我重置服务器,并且可以尝试使用localhost:3000 / login登录,但如果尝试localhost:3000 / logout,则会收到以下路由错误:没有路由匹配“ / logout”

非常感谢您的帮助,因为我一直在通过网络进行挖掘以寻找答案。

最佳答案

我相信

delete 'logout' => :destroy


应该

get 'logout' => :destroy


要么

post 'logout' => :destroy


取决于您如何处理行为。您最有可能想要get

关于ruby-on-rails - session Controller 中的Rails 3注销路由,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6182328/

10-11 20:52