设计gem 用于身份验证。
Rails 会话存储在数据库中。
为了在 Rails 3 之外使用会话,我创建了一个名为Session
. 在表格中添加user_id
了列sessions
。
当用户登录时,我应该更新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
成功登录后写一次的最佳方法是什么?