我的基于 Devise/Warden 的应用程序将模型 ID 存储在 session[] 变量中。我想在 session[] 被销毁时销毁对象。
- 当会话被销毁时,是否有回调或某种机制来通知我的应用程序?
- 该机制是否可靠,或者我应该运行一个夜间清理脚本来清理任何孤立的对象?
为了清楚起见,这是我的控制器代码的片段:
class WizardsController < ApplicationController
before_filter :find_or_create_wizard
...
private
def find_or_create_wizard
@wizard = Wizard.find_by_id(session[:wizard_id]) || Wizard.create.tap {|w| session[:wizard_id] = w }
end
end
重申问题:我应该如何以及何时销毁 Wizard 对象?