在 sign_in 之后访问设计中的新 session_id

Accessing the new session_id in devise after sign_in

我正在使用设计和覆盖 SessionsController#create 来根据特定条件跟踪登录。

即使在 sign_in(user) 执行后,sign_in(user) 之前的会话[:session_id] 的值也是相同的。

我想将新的 session_id 存储在数据库中以便跟踪用户。但是无法访问它。如何获得?

在寻找的过程中,发现Devise使用了Warden的set_user方法。但即使那样,我也无法弄清楚在 Warden 中设置会话的位置。

在以下问题中找到答案:

Rails ActiveRecord store and new session

Benjamin Sinclaire 的回答对我有用(虽然它没有被标记为回答)。刚刚将 session.options 替换为 request.session_options