2012-11-04 7 views
5

In einer Rails-App verwende ich Devise, um meine Benutzer zu verwalten, und mein Link zum Zerstören einer Sitzung funktioniert nicht mehr. Es hat funktioniert, und jetzt habe ich Active Admin hinzufügen, tut es nicht.Devise, kann sich nicht abmelden

Mein Link ist

<%= link_to "Déconnexion", destroy_user_session_path, :method => :delete, :class => 'button' %> 

Mein routes.rb

devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks"} 

Meine Rake Routen

destroy_user_session DELETE /users/sign_out(.:format) 

Und es versuchen, die Ansicht/users/sign_out zu öffnen, so dass ich :

ActiveRecord::RecordNotFound in UsersController#show 

Couldn't find User with id=sign_out 

Stürzen Active_admin und Devise zusammen ab? Es wird komisch sein, denn aktive Verwendung, nein?

Edit:

Für die nächste Person, die dieses Problem haben wird, ich es gelöst, indem die nächste Zeile hinzufügen /config/initializers/devise.rb.

config.sign_out_via = :get 

Nicht gerade der beste Weg, aber es macht den Job.

+1

denke ich, das Problem unter ActiveAdmin sehr gut gelöst haben. –

+2

Ich löste dieses sehr ähnliche Problem, indem ich initializers/active_admin.rb änderte und 'config.logout_link_method =: delete 'setzte –

Antwort

0

Bitte nehmen Sie Änderungen in Ihrem routes.rb: - ​​

devise_scope :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks"} do 
    get "https://stackoverflow.com/users/sign_out", :to => "devise/sessions#destroy" 
end 

ich auch gleiches Problem bekommen habe, nur das kann mich lösen nach 1 Stunde Zeit zu verschwenden.

Danke.

2

Posting Jeff Paquettes Kommentar als Antwort.

Aktualisieren Sie die config/initializers/active_admin.rb mit:

config.logout_link_method = :delete