2012-11-04 86 views
5

在Rails應用程序中,我使用設計來管理我的用戶,我的鏈接銷燬會話不再有效。它正在工作,現在我添加了活動管理員,它沒有。設計,無法註銷

我的鏈接是

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

我的routes.rb

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

我耙路線

destroy_user_session DELETE /users/sign_out(.:format) 

它試圖打開視圖/用戶/ SIGN_OUT,所以我有:

ActiveRecord::RecordNotFound in UsersController#show 

Couldn't find User with id=sign_out 

Active_admin和Devise會一起崩潰嗎? 這將是不可思議的,因爲積極使用設計,不是嗎?

編輯:

對於誰都會有這樣的問題,旁邊的人,我加入下一行/config/initializers/devise.rb解決了這個問題。

config.sign_out_via = :get 

不完全是最好的方式,但它做的工作。

+1

我想你已經ActiveAdmin下解決了這個問題非常好。 –

+2

我通過更改initializers/active_admin.rb並設置'config.logout_link_method =:delete'解決了這個非常相似的問題 –

回答

0

在你的routes.rb請自行更改: -

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

我也得到同樣的問題,只有這樣才能1小時的時間浪費後解決了我。

謝謝。

2

發佈Jeff Paquette的迴應。

更新config/initializers/active_admin.rb有:

config.logout_link_method = :delete