0

これは簡単なはずですが、その方法がわかりません:

ユーザーがアプリにログインしている場合、常にナビゲーションバーの右上にそのユーザーの名前を表示したいと考えています。しかし、それらが別のビューにある場合、たとえば Posts コントローラーの Posts ビューは、そのビューよりも Post クラスとそれに関連付けられた変数にのみアクセスできますか? それで、これをどのようにプラグインできますか:

<%= user.name %> 

ユーザーコントローラーを通過しなかったときは?

4

1 に答える 1

0

多くの Rails アプリでは、次current_userのようにベース コントローラーで呼び出されるメソッドを定義しApplicationController、それをビュー ヘルパーとして使用できるようにします。

class ApplicationController < ActionController::Base
  def current_user
    # Do whatever logic you need to return an instance of the logged in user
  end

  helper_method :current_user
end

次に、そのクラスから継承するコントローラーまたはビューでそのメソッドを参照できます。

<%= current_user.name %>

コントローラーは任意のモデルを呼び出すことができるため、質問に記載されている仮定は真実ではありません。(たとえば、本当に必要な場合Userは、コントローラーからモデルを呼び出すことができます。)Posts

于 2013-10-14T02:05:32.447 に答える