0

モデル「ユーザー」があり、セッションで作業しています。

ユーザーは、ログインしていなくても、実際にユーザーを保存せずに、セッション内のUser.newオブジェクトを変更できます。

まだログインしていないユーザーがUsers#Showページを表示できるようにしたいと思います。

これを行うための最良の方法は何ですか?

ありがとう!

4

2 に答える 2

0

コントローラでは、次のようなことができます。

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

したがって、current_userが存在する場合はそれを取得し、存在しない場合はセッションから読み取ります。

ただし、通常、モデル全体をセッションに保存するのは面倒です。基になるクラスを変更すると、セッション内のオブジェクトが正しくアンマーシャリングされないため、Userクラスに変更を加えた後にセッションをリセットするようにreset_sessionしてください。そうしないと、多くの奇妙なエラーが発生します。

于 2012-05-03T15:20:30.003 に答える
0

上記の答えはうまくいきます。「セッションベースのモデル」パターンを探していました。このパターンでの作業に非常に役立つことがわかったセッションベースのモデルに関するRailscastがあり ます。

于 2012-05-04T19:55:16.330 に答える