アプリにログインしたら、ユーザーを標準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 に保存されないため)。