/ users / Sign_out的路由错误;设计注销不起作用

时间:2014-11-26 09:16:32

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 devise

我按照本教程构建了一个像应用程序一样的 dropbox Build-a-dropbox-like-file-sharing-site-with-ruby-on-rails

我是Ruby on Rails的新手,还在学习。根据教程,我使用了设计进行身份验证,但它有一个问题,即一旦登录就不能让我退出。我无法找到解决方案。

我用Google搜索并试图将其添加到routes.rb

routes.rb

Dropbox::Application.routes.draw do
 #me devise_for :users
 devise_for :users do get '/users/sign_out' => 'devise/sessions#destroy' end
 root :to => "home#index"
end

我无法解决这个问题。请帮忙。

2 个答案:

答案 0 :(得分:0)

在路由中,您已定义' GET'它应该是'删除'

请将您的路线更改为devise_for :users

我认为退出的路线是DELETE方法。这意味着您的退出链接必须如下所示<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>.您的不包含:method =&gt; :删除部分。

还请检查您的设备初始化程序文件。 应该定义

#config/initializers/devise.rb
config.sign_out_via = :delete

它会起作用

示例rails-devise,请克隆一下。

答案 1 :(得分:0)

这应该足够了:

devise_for :users

从您的错误中

Routing error for /users/Sign_out

我发现你使用的路线不正确,应该是

/users/sign_out

/users/Sign_out