Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Problem Signing Out with Devise on my App

I am in the process updating my app so I use the Devise gem for authentication. Everything appears to be working great, except for the fact that I can't seem to sign out.

I get the error:

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

I can trace the error back to the show action in my users controller:

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

The problem is that I am not sure why it is trying to render the show action for my user. Overall my page has this format:

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

As per devise instructions, my sign-out path looks like this:

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

If a user is not signed in, it should render the splash page which is basically static html. Any suggestions on how to help? Even if you could just put me in the right ball park in terms of the problem that would be much appreciated.

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'

Here is my rake routes:

        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"}
like image 907
Spencer Avatar asked Jul 06 '11 13:07

Spencer


1 Answers

Actually, ignore my previous answer and try this:

<li><%= link_to "Sign out", destroy_user_session_path, :method => :delete %></li>
like image 106
Slick23 Avatar answered Oct 11 '22 14:10

Slick23



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!