ruby-on-rails - 在我的应用程序上使用 Devise 注销时出现问题

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

我正在更新我的应用程序,因此我使用 Devise gem 进行身份验证。一切似乎都运行良好,除了我似乎无法注销这一事实。

我得到错误:

Couldn't find User with ID=sign_out
Parameters:
{"id"=>"sign_out"}

我可以将错误追溯到我的用户 Controller 中的显示操作:

  def show
    @user = User.find(params[:id])
  end

问题是我不确定它为什么要尝试为我的用户呈现显示操作。总体而言,我的页面具有以下格式:

<% if user_signed_in? %>
    <%= render 'shared/feed_home' %>
<% else %>
  <%= render 'shared/splash' %>
<% end %>

根据设计说明,我的退出路径如下所示:

<li><%= link_to "Sign out", destroy_user_session_path %></li>

如果用户未登录,则应呈现基本为静态 html 的初始页面。关于如何提供帮助的任何建议?即使您能将我放在正确的范围内,也将不胜感激。

Here is my routes file:


  devise_for :users
  resources :users do
    member do
      get :following, :followers, :following_tags, :following_posts
    end
  end
  resources :posts 

  resources :votes
  resources :comments
  resources :tags
  resources :events

  #resources :posts,    :only => [:create, :destroy, :show]
  resources :relationships, :only => [:create, :destroy]

  root :to =>'pages#subscribed'


  match '/contact', :to => 'pages#contact'
  match '/about',   :to => 'pages#about'
  match '/live',   :to => "pages#home"
  match '/voted', :to => 'pages#highest_voted'
  match '/signup',  :to => 'users#new'

这是我的佣金路线:

        new_user_session GET    /users/sign_in(.:format)             {:action=>"new", :controller=>"devise/sessions"}
            user_session POST   /users/sign_in(.:format)             {:action=>"create", :controller=>"devise/sessions"}
    destroy_user_session DELETE /users/sign_out(.:format)            {:action=>"destroy", :controller=>"devise/sessions"}
           user_password POST   /users/password(.:format)            {:action=>"create", :controller=>"devise/passwords"}
       new_user_password GET    /users/password/new(.:format)        {:action=>"new", :controller=>"devise/passwords"}
      edit_user_password GET    /users/password/edit(.:format)       {:action=>"edit", :controller=>"devise/passwords"}
                         PUT    /users/password(.:format)            {:action=>"update", :controller=>"devise/passwords"}
cancel_user_registration GET    /users/cancel(.:format)              {:action=>"cancel", :controller=>"devise/registrations"}
       user_registration POST   /users(.:format)                     {:action=>"create", :controller=>"devise/registrations"}
   new_user_registration GET    /users/sign_up(.:format)             {:action=>"new", :controller=>"devise/registrations"}
  edit_user_registration GET    /users/edit(.:format)                {:action=>"edit", :controller=>"devise/registrations"}
                         PUT    /users(.:format)                     {:action=>"update", :controller=>"devise/registrations"}
                         DELETE /users(.:format)                     {:action=>"destroy", :controller=>"devise/registrations"}
          following_user GET    /users/:id/following(.:format)       {:action=>"following", :controller=>"users"}
          followers_user GET    /users/:id/followers(.:format)       {:action=>"followers", :controller=>"users"}
     following_tags_user GET    /users/:id/following_tags(.:format)  {:action=>"following_tags", :controller=>"users"}
    following_posts_user GET    /users/:id/following_posts(.:format) {:action=>"following_posts", :controller=>"users"}
                   users GET    /users(.:format)                     {:action=>"index", :controller=>"users"}
                         POST   /users(.:format)                     {:action=>"create", :controller=>"users"}
                new_user GET    /users/new(.:format)                 {:action=>"new", :controller=>"users"}
               edit_user GET    /users/:id/edit(.:format)            {:action=>"edit", :controller=>"users"}
                    user GET    /users/:id(.:format)                 {:action=>"show", :controller=>"users"}
                         PUT    /users/:id(.:format)                 {:action=>"update", :controller=>"users"}
                         DELETE /users/:id(.:format)                 {:action=>"destroy", :controller=>"users"}
                   posts GET    /posts(.:format)                     {:action=>"index", :controller=>"posts"}
                         POST   /posts(.:format)                     {:action=>"create", :controller=>"posts"}
                new_post GET    /posts/new(.:format)                 {:action=>"new", :controller=>"posts"}
               edit_post GET    /posts/:id/edit(.:format)            {:action=>"edit", :controller=>"posts"}
                    post GET    /posts/:id(.:format)                 {:action=>"show", :controller=>"posts"}
                         PUT    /posts/:id(.:format)                 {:action=>"update", :controller=>"posts"}
                         DELETE /posts/:id(.:format)                 {:action=>"destroy", :controller=>"posts"}
                   votes GET    /votes(.:format)                     {:action=>"index", :controller=>"votes"}
                         POST   /votes(.:format)                     {:action=>"create", :controller=>"votes"}
                new_vote GET    /votes/new(.:format)                 {:action=>"new", :controller=>"votes"}
               edit_vote GET    /votes/:id/edit(.:format)            {:action=>"edit", :controller=>"votes"}
                    vote GET    /votes/:id(.:format)                 {:action=>"show", :controller=>"votes"}
                         PUT    /votes/:id(.:format)                 {:action=>"update", :controller=>"votes"}
                         DELETE /votes/:id(.:format)                 {:action=>"destroy", :controller=>"votes"}
                comments GET    /comments(.:format)                  {:action=>"index", :controller=>"comments"}
                         POST   /comments(.:format)                  {:action=>"create", :controller=>"comments"}
             new_comment GET    /comments/new(.:format)              {:action=>"new", :controller=>"comments"}
            edit_comment GET    /comments/:id/edit(.:format)         {:action=>"edit", :controller=>"comments"}
                 comment GET    /comments/:id(.:format)              {:action=>"show", :controller=>"comments"}
                         PUT    /comments/:id(.:format)              {:action=>"update", :controller=>"comments"}
                         DELETE /comments/:id(.:format)              {:action=>"destroy", :controller=>"comments"}
                    tags GET    /tags(.:format)                      {:action=>"index", :controller=>"tags"}
                         POST   /tags(.:format)                      {:action=>"create", :controller=>"tags"}
                 new_tag GET    /tags/new(.:format)                  {:action=>"new", :controller=>"tags"}
                edit_tag GET    /tags/:id/edit(.:format)             {:action=>"edit", :controller=>"tags"}
                     tag GET    /tags/:id(.:format)                  {:action=>"show", :controller=>"tags"}
                         PUT    /tags/:id(.:format)                  {:action=>"update", :controller=>"tags"}
                         DELETE /tags/:id(.:format)                  {:action=>"destroy", :controller=>"tags"}
                  events GET    /events(.:format)                    {:action=>"index", :controller=>"events"}
                         POST   /events(.:format)                    {:action=>"create", :controller=>"events"}
               new_event GET    /events/new(.:format)                {:action=>"new", :controller=>"events"}
              edit_event GET    /events/:id/edit(.:format)           {:action=>"edit", :controller=>"events"}
                   event GET    /events/:id(.:format)                {:action=>"show", :controller=>"events"}
                         PUT    /events/:id(.:format)                {:action=>"update", :controller=>"events"}
                         DELETE /events/:id(.:format)                {:action=>"destroy", :controller=>"events"}
           relationships POST   /relationships(.:format)             {:action=>"create", :controller=>"relationships"}
            relationship DELETE /relationships/:id(.:format)         {:action=>"destroy", :controller=>"relationships"}
                    root        /(.:format)                          {:controller=>"pages", :action=>"subscribed"}
                 contact        /contact(.:format)                   {:controller=>"pages", :action=>"contact"}
                   about        /about(.:format)                     {:controller=>"pages", :action=>"about"}
                    live        /live(.:format)                      {:controller=>"pages", :action=>"home"}
                   voted        /voted(.:format)                     {:controller=>"pages", :action=>"highest_voted"}
                  signup        /signup(.:format)                    {:controller=>"users", :action=>"new"}

最佳答案

实际上,忽略我之前的回答并试试这个:

<li><%= link_to "Sign out", destroy_user_session_path, :method => :delete %></li>

关于ruby-on-rails - 在我的应用程序上使用 Devise 注销时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6596936/

相关文章:

Ruby Guard 问题 - 'Please install the sqlite3 adapter' - railstutorial.org

ruby-on-rails - 如何在rails3 select中渲染图片

mysql - Ruby (Rack) 应用程序无法启动 - mysql 库错误

ruby - 无法在 rake 迁移中为 PG 创建索引 - Rails

ruby-on-rails - 无效 'retry' Ruby (/rails)

ruby - 根据 ==,两个相等的 Time 对象不相等

ruby - 在 Ruby 中创建数据解析器

ruby-on-rails - 生产中的 Rails 预编译 Assets ——与开发中的不同

ruby-on-rails - rails 和蜻蜓 : Cleaning up unused images

ruby-on-rails - 如何将rails的activerecord对象保存到redis