【发布时间】:2012-03-02 10:17:35
【问题描述】:
设计 gem 用于身份验证。
Rails 会话存储在数据库中。
为了在 Rails 3 之外使用会话,我创建了一个名为 Session 的模型。在sessions 表中添加了user_id 列。
当用户登录时,我应该更新会话表中的user_id 列。所以在ApplicationController我加了一个方法:
protected
def after_sign_in_path_for(resource)
@session = Session.find_by_session_id(request.session_options[:id])
@session.update_attribute(:user_id, current_user.id)
stored_location_for(resource) || root_path if @session.save
end
但在重定向之后,最近的 session 被破坏,我在 DB 中结束了另一个会话,空白 user_id。
成功登录后写user_id 的最佳方法是什么?
【问题讨论】:
标签: ruby-on-rails devise session-storage