【问题标题】:Devise, can't log out设计,无法退出
【发布时间】:2012-10-24 15:43:15
【问题描述】:

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

我的链接是

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

我的路线.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

不完全是最好的方法,但确实可以。

【问题讨论】:

  • 我认为您在 ActiveAdmin 下已经很好地解决了这个问题。
  • 我通过更改 initializers/active_admin.rb 并设置 config.logout_link_method = :delete 解决了这个非常相似的问题

标签: devise activeadmin


【解决方案1】:

请更改您的 routes.rb :-

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

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

谢谢。

【讨论】:

    【解决方案2】:

    张贴 Jeff Paquette 的评论作为答案。

    config/initializers/active_admin.rb 更新为:

    config.logout_link_method = :delete
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 2016-04-04
      • 2017-05-08
      • 2015-11-02
      • 2019-04-24
      相关资源
      最近更新 更多