6

在 Rails 应用程序中,我使用设计来管理我的用户,并且我的链接以破坏会话不再起作用。它工作正常,现在我添加了活动管理员,但没有。

我的链接是

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

不完全是最好的方法,但它可以完成工作。

4

2 回答 2

3

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

更新config/initializers/active_admin.rb

config.logout_link_method = :delete
于 2016-04-26T10:33:30.190 回答
0

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

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

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

谢谢。

于 2013-07-10T14:17:49.347 回答