0

アプリにログインしたら、ユーザーを標準users#showページに送信しています。

def show
  @user = User.find(params[:id])
end

しかし、URL を表示するのではなく/users/50、一般的な/welcome. などを使用できるように、ビュー内のユーザー データにアクセスする必要があります<%= @user.name %>

それは簡単ですか?

4

1 に答える 1

1

確かにそれは簡単です。ログインしているユーザーの場合@user、セッション Cookie をどこかに保存している必要があります。それを使用してユーザーを設定するだけです。セッション Cookie にユーザーの名前が保存されていると仮定すると、次のようになります。

def welcome
  @user = User.find_by_name(session[:user])
  # other controller code
end

通常、このようにセッション Cookie を直接処理することはありませんが、代わりに設定current_userApplicationControllerて参照します。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 に保存されないため)。

于 2012-09-24T14:00:55.453 に答える