【发布时间】:2017-02-09 13:05:20
【问题描述】:
我可以在开发中的本地主机上轻松退出,但我无法使用 devise 在 heroku 上退出生产模式。在查看日志后,我发现users/sign_out 正在使用 GET 方法调用。
这是heroku服务器为注销按钮生成的代码:
<a rel="nofollow" data-method="delete" href="/users/sign_out">Logout</a>
我为 GET 方法创建了一个自定义路由以退出,但这不遵循 RESTful 方法。这是我的路线文件:
Rails.application.routes.draw do
resources :posts do
resources :post_comments
end
devise_for :users, controllers: {
sessions: 'users/sessions',
registrations: 'users/registrations'
}
devise_scope :user do
get 'users/sign_out', to: 'users/sessions#destroy'
end
root 'posts#index'
结束
如何解决此问题以使用 DELETE 方法?
【问题讨论】:
-
在检查您用于退出的页面时,您是否收到任何 javascript 错误?您的 javascript 中是否需要 jquery 和 jquery_ujs ?可能在资产编译期间出现了您无法在开发环境中处理的问题。
-
@AlexandreAngelim 我很确定唯一的错误是找不到该页面。是的,它们都在 application.js 中使用。我不确定如何修复资产编译问题,我是 Rails 新手
-
应用是否公开?可以分享一下网址吗?
-
缺少引导程序依赖项(Tether)。 Bootstrap 正在提高
Uncaught Error: Bootstrap tooltips require Tether。这可能会阻止 js 执行,因此无法正确处理数据方法链接。
标签: ruby-on-rails rest heroku devise