2009-03-08 10 views
5

私のRailsアプリケーションでは、ログインページがあります。そのユーザーがログインした後、ログインしているユーザーを追跡するための最良の方法は何ですか?たとえば、ユーザーが別のページに移動した場合、コントローラ/アクションは、ユーザーがその後に訪れる各ページ間の変数。これを行うより良い方法はありますか?変数sessionsを使用する必要がありますか?Rails:ユーザーIDをトラッキングする

答えて

7

はい、セッションはまさにあなたが探しているものです。

session["user_id"] = user_id 

そして、(あなたのモデルは、ユーザーが呼び出された場合)、別のページで、現在のユーザーを取得する:

@current_user = User.find(session["user_id]") 
+0

はあなたがデフォルトであるクッキーベースのセッションを使用している場合、私が考えることを覚えておいてくださいんいくつかの素晴らしい宝石があります。レール2.1+でこのデータを変更して、誰がログインしているかを切り替えることができます。 – Tilendor

+2

実際には、クッキーにはあなたに基づいたSHA512フィンガープリントがありますアプリケーションの秘密鍵を使用してデータを改ざんしないようにします。これは、クッキーの内容がクライアント側で利用可能であるため、サーバー側のストアに変更しない限り、機密データ(パスワードなど)の保管を避ける必要があることを意味します。 – Palm

4

が強く、これを管理するためのプラグインを検討してください。

restful authenticationのようにいくつかあります。

これは、current_userlogged_in?の機能を示します。

関連する問題