设计,无法注销

时间:2012-11-04 18:08:20

标签: devise activeadmin

在Rails应用程序中,我使用devise来管理我的用户和我的链接以销毁会话不再有效。它工作正常,现在我已经添加了活动的管理员,它没有。

我的链接是

<%= 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)

它尝试打开视图/ users / 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

不完全是最好的方式,但它确实起到了作用。

2 个答案:

答案 0 :(得分:2)

将Jeff Paquette的评论作为答案发布。

使用以下内容更新config/initializers/active_admin.rb

config.logout_link_method = :delete

答案 1 :(得分:0)

请在您的路线中进行更改.rb: -

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

我也遇到了同样的问题,只有在1小时浪费后才能解决这个问题。

感谢。