モデル「ユーザー」があり、セッションで作業しています。
ユーザーは、ログインしていなくても、実際にユーザーを保存せずに、セッション内のUser.newオブジェクトを変更できます。
まだログインしていないユーザーがUsers#Showページを表示できるようにしたいと思います。
これを行うための最良の方法は何ですか?
ありがとう!
モデル「ユーザー」があり、セッションで作業しています。
ユーザーは、ログインしていなくても、実際にユーザーを保存せずに、セッション内のUser.newオブジェクトを変更できます。
まだログインしていないユーザーがUsers#Showページを表示できるようにしたいと思います。
これを行うための最良の方法は何ですか?
ありがとう!
コントローラでは、次のようなことができます。
def show
@user = current_user || session[:current_user]
end
したがって、current_userが存在する場合はそれを取得し、存在しない場合はセッションから読み取ります。
ただし、通常、モデル全体をセッションに保存するのは面倒です。基になるクラスを変更すると、セッション内のオブジェクトが正しくアンマーシャリングされないため、Userクラスに変更を加えた後にセッションをリセットするようにreset_session
してください。そうしないと、多くの奇妙なエラーが発生します。
上記の答えはうまくいきます。「セッションベースのモデル」パターンを探していました。このパターンでの作業に非常に役立つことがわかったセッションベースのモデルに関するRailscastがあり ます。