2

当用户的会话与设计超时时,有没有办法获得回调/处理某些操作?

覆盖 DeviseSessionsController 的普通旧版本不起作用:

class SessionsController < Devise::SessionsController

  def destroy
    #do something
    super
  end

end

这仅在用户注销时有效,这是有道理的,因为在会话超时时似乎不会调用控制器。有人可以帮我吗?

4

2 回答 2

6

我发现做 Warden.before_logout 是最好的解决方案:

# app/models/user.rb

Warden::Manager.before_logout do |user, auth, opts|
  #fdsafdsafdsa
end

不幸的是,纯粹的设计似乎没有任何方法可以做到这一点。

于 2012-06-01T05:04:39.107 回答
0
before_filter :destroy_custom, :only => [ :destroy ]


def destroy_custom 
    # Do your thang
end

我能够用新方法做到这一点。我猜想破坏也可以做同样的事情。回调可以在 devise_custom 内部调用,或者 devise_custom 本身可能是您要在销毁之前执行某些操作的方法。

于 2012-06-01T01:29:24.690 回答