在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
不完全是最好的方式,但它确实起到了作用。
答案 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小时浪费后才能解决这个问题。
感谢。