设计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成功登录后写一次的最佳方法是什么?