Rails:使用session_id销毁会话

时间:2014-04-24 09:06:49

标签: ruby-on-rails

我正在编写一个需要通过session_id销毁任意会话的gem。

目前我正在使用以下代码

case Rails.application.config.session_store
when ActionDispatch::Session::CacheStore
  Rails.cache.delete("_session_id:#{session_id}")
when ActionDispatch::Session::ActiveRecordStore
  ActiveRecord::SessionStore.session_class.find(session_id).destroy
when ActionDispatch::Session::CookieStore
  # cannot remove a client-storage session
end

但我已为每个destroy_session(env, session_id, options)课程找到SessionStorage方法。如何在脚本中调用此方法? (不在请求或任何控制器中)

1 个答案:

答案 0 :(得分:0)

如果您在数据库中存储会话,可以在控制台中尝试:

rake db:sessions:clear

您还可以使用控制器中的以下内容销毁整个会话:

reset_session