アプリにログインしたら、ユーザーを標準users#show
ページに送信しています。
def show
@user = User.find(params[:id])
end
しかし、URL を表示するのではなく/users/50
、一般的な/welcome
. などを使用できるように、ビュー内のユーザー データにアクセスする必要があります<%= @user.name %>
。
それは簡単ですか?
アプリにログインしたら、ユーザーを標準users#show
ページに送信しています。
def show
@user = User.find(params[:id])
end
しかし、URL を表示するのではなく/users/50
、一般的な/welcome
. などを使用できるように、ビュー内のユーザー データにアクセスする必要があります<%= @user.name %>
。
それは簡単ですか?
確かにそれは簡単です。ログインしているユーザーの場合@user
、セッション Cookie をどこかに保存している必要があります。それを使用してユーザーを設定するだけです。セッション Cookie にユーザーの名前が保存されていると仮定すると、次のようになります。
def welcome
@user = User.find_by_name(session[:user])
# other controller code
end
通常、このようにセッション Cookie を直接処理することはありませんが、代わりに設定current_user
しApplicationController
て参照します。Aは、すべてのコントローラーで使用できるbefore_filter
ように設定するのに適した方法です。current_user
before_filter :initialize_user
def initialize_user
@current_user = User.find_by_name(session[:user]) if session[:user]
end
@user
次に、次のように設定できます。
def welcome
@user = current_user
# other controller code
end
これを行う方法は他にもありますが、何をするにしても、これを機能させるにはセッション Cookie をどこかに設定する必要があります (ユーザーに関する情報はウェルカム URL に保存されないため)。