2012-11-04 8 views
5

W aplikacji Rails używam narzędzia devise do zarządzania użytkownikami, a mój link do niszczenia sesji już nie działa. To działało, a teraz dodałem aktywnego administratora, to nie działa.Wymyślić, nie można się wylogować

Mój link jest

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

Moja routes.rb

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

Moje trasy natarcia

destroy_user_session DELETE /users/sign_out(.:format) 

I spróbuj otworzyć widok/Użytkownicy/sign_out, więc mam :

ActiveRecord::RecordNotFound in UsersController#show 

Couldn't find User with id=sign_out 

Czy dyski Active_admin i Devise ulegają awarii? To będzie dziwne "bo aktywnie używasz urządzenia, nie?

Edit:

Na następnej osoby, która będzie miała ten problem, ja rozwiązałem dodając następną linię do /config/initializers/devise.rb.

config.sign_out_via = :get 

Niezupełnie najlepszy sposób, ale spełnia swoje zadanie.

+1

myślę, że rozwiązali ten problem bardzo dobrze pod ActiveAdmin. –

+2

Rozwiązałem ten bardzo podobny problem poprzez zmianę inicjalizatorów/active_admin.rb i ustawienie 'config.logout_link_method =: delete' –

Odpowiedz

0

Należy dokonać zmian w swoim routes.rb: - ​​

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

Jestem również coraz sam problem, tylko ten można rozwiązać mnie po 1godz czas marnować.

Dzięki.

2

Zamieszczanie komentarza Jeff Paquette jako odpowiedzi.

Aktualizacja config/initializers/active_admin.rb z:

config.logout_link_method = :delete 
Powiązane problemy