Rails 3使用设计重置会话

Sye*_*lam 9 session devise ruby-on-rails-3

我正在使用Devise开发Rails3应用程序进行身份验证.在工作流程中,像patient_id这样的数据存储在会话中.但是,当用户登出时,需要清除会话.我无法弄清楚如何重置会话数据,因为Devise处理用户登录/注销并且我无法控制它.

如何处理这种情况?

mio*_*mio 14

像这样覆盖Devise :: SessionsController:

class SessionsController < Devise::SessionsController
  respond_to :html
  def destroy
    super
    reset_session
  end
end
Run Code Online (Sandbox Code Playgroud)

不要忘记将设计视图移动到正确的位置(视图/设备/会话到视图/会话)并修改设计路径以指向控制器.例如:

devise_for :users, :controllers => { :sessions => "sessions" }
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息或Bill发布的链接,请参阅github上的设计文档.