0

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

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

我想让尚未登录的用户查看他们的 Users#Show 页面。

做这个的最好方式是什么?

谢谢!

4

2 回答 2

0

上面的答案有效。我正在寻找“基于会话的模型”模式。有一个 关于基于会话的模型的 Railscast,我发现它对使用这种模式非常有帮助。

于 2012-05-04T19:55:16.330 回答
0

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

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

因此,如果有,您将获得 current_user,如果没有,则从会话中读取。

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

于 2012-05-03T15:20:30.003 回答