我有一个模型“用户”,我正在使用会话。
允许用户在未登录的情况下修改会话中的User.new对象,而无需实际保存用户。
我想启用尚未登录的用户查看其用户#显示页面。
这样做的最佳方式是什么?
谢谢!
答案 0 :(得分:0)
在您的控制器中,您可以执行以下操作:
def show
@user = current_user || session[:current_user]
end
如果有,则获取current_user,如果没有,则从会话中读取。
在会话中存储整个模型通常会很糟糕。如果更改基础类,则会话中的对象将无法正确解组,因此请确保在对User类进行更改后使用reset_session
重置会话,否则会出现许多奇怪的错误
答案 1 :(得分:0)
上面的答案有效。我一直在寻找“基于会话的模型”模式。我发现Railscast on Session Based Models 对于使用这种模式非常有帮助。