将未保存的模型传递给视图

时间:2012-05-03 15:00:27

标签: ruby-on-rails

我有一个模型“用户”,我正在使用会话。

允许用户在未登录的情况下修改会话中的User.new对象,而无需实际保存用户。

我想启用尚未登录的用户查看其用户#显示页面。

这样做的最佳方式是什么?

谢谢!

2 个答案:

答案 0 :(得分:0)

在您的控制器中,您可以执行以下操作:

def show
  @user = current_user || session[:current_user]
end

如果有,则获取current_user,如果没有,则从会话中读取。

在会话中存储整个模型通常会很糟糕。如果更改基础类,则会话中的对象将无法正确解组,因此请确保在对User类进行更改后使用reset_session重置会话,否则会出现许多奇怪的错误

答案 1 :(得分:0)

上面的答案有效。我一直在寻找“基于会话的模型”模式。我发现Railscast on Session Based Models 对于使用这种模式非常有帮助。