ruby-on-rails - 没有路由匹配 [GET] "/logout"

标签 ruby-on-rails ruby session httprequest store

在我的 session Controller 中,我有一个名为 destroy 的方法,它在路由中指向“注销”,它的功能只是将 session 变量重置为 nil 并重定向到商店索引:

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

在路由文件中我声明了指针:

get "sessions/destroy"

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

现在在浏览器中我应该触发 HTTP DELETE VERB,但它采用 GET 并且找不到路由。

例如:

localhost:3000/logout,错误是No route matches [GET] "/logout"

最佳答案

在链接中你应该把明确的方法::destroy,像这样:

= link_to 'Destroy', session, method: :destroy

关于ruby-on-rails - 没有路由匹配 [GET] "/logout",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31620318/

相关文章:

ruby-on-rails - MongoDB 的 GridFS、Rails 3、X-Sendfile 和 ACL,操作方法?

javascript - 如何在 JavaScript 中设置 cookie 值并在 Rails Controller 中获取它

session - Golang 和 Gorilla session - 缓存阻止注销功能

session - 如何在 SPA 应用程序(客户端)中检测 Windows ACS session 是否过期

php - 从 JS 或 CSS 文件中删除 Cookie

ruby-on-rails - 我应该如何将 ID 传递到收集 route ?

ruby-on-rails - 如何为具有 HABTM 关系的模型提供与其他种子模型的关系

ruby-on-rails - 返回 : i18n best practices for large translation dictionaries

ruby - 在 Heroku 中使用 Padrino 发送电子邮件

Ruby 可执行文件不工作