2011-07-06 17 views
15

Uygulamamı güncelleme işleminde olduğum için kimlik doğrulaması için Devise gemini kullanıyorum. Her şey çok iyi çalışıyor gibi gözüküyormuş gibi görünmüyor.Sorunumu Uygulamamdaki Devise ile Oturum Açma

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

problem çalışıyor neden emin değilim şudur: Benim kullanıcıların denetleyicisi şov eyleme geri hatayı iz olabilir

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

:

hatası alıyorum kullanıcı için gösteri eylemi oluşturmak. Genel sayfam bu biçimdedir: vasiyetle talimatları gereğince

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

, benim oturum kapatma yolu şuna benzer: Bir kullanıcı oturum açmamış

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

, bu sıçrama sayfayı oluşturmak gereken temel olarak statik html'dir. Nasıl yardım edeceğinize dair herhangi bir öneriniz var mı? Beni doğru balo salonuna sokacak olsanız bile, çok takdir edilecek olan problem açısından.

 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"} 
+0

Kullanım SignOut için bu bağlantıyı [Oturumu Sorun çözüldü

Ben de vasiyet yolları kapsam deneyebilirsiniz tahmin (Devise için) [1]: http://stackoverflow.com/questions/6557311/no-route-matches-users-sign-out-devise-rails-3 –

cevap

27

ve bu deneyin:

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

Şu anda bilgisayarımdan uzaktayım ve bunu test edemiyorum. Ancak, eve gelir dönmez test edeceğim. Tekrar teşekkürler :) – Spencer

+0

Sorun değil. Devise, kayıt için bir get yöntemi oluşturmuyor gibi görünüyor, sadece sil. Dokümanlar, gerektiğini söyledi, bu yüzden neden olmadığından emin değil. Ama bu * çalışmalıdır * iş :-) – Slick23

+1

Bu tamamen budur - rota yöntemi almak değil, silme yöntemini istiyor. destroy_user_session DELETE /users/sign_out(.:format) {: action => "yok",: controller => "devise/session"} ' – DGM

2

Sorun routes.rb dosyada olabilir:

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' 

İşte benim tırmık yolları olduğunu. user/signout adresini uygun şekilde yönlendirmeniz ve kullanıcılarınızın rotası üzerinde olması gerekir, çünkü rotalar en üstte çalışır. Rota dosyanızı gönderirseniz, daha fazla yardımcı olabilirim.

devise_for :users'unuzun üzerinde bir resources :users var mı? Aslında, benim önceki cevabı görmezden

devise_scope :users do 
     get "sign_out", :to => "devise/sessions#destroy" 
    end 
+0

Devise'nin o rotayı otomatik olarak düşündüm mü? En son düzenlemeye göre, yalnızca oturumu sonlandırmak için varsayılan plan yoluna bağlantı veriyorum. – Spencer

+0

Ayrıca, rotalarım dosyasını da gönderdim. – Spencer

+0

Evet, güncellemeye bakın. Bazı sebeplerden dolayı raylar, "sign_out" kullanıcı kaynağı için bir kimlik olduğunu düşünüyor. Tırmık yolları size ne veriyor? – Slick23