これは簡単なはずですが、その方法がわかりません:
ユーザーがアプリにログインしている場合、常にナビゲーションバーの右上にそのユーザーの名前を表示したいと考えています。しかし、それらが別のビューにある場合、たとえば Posts コントローラーの Posts ビューは、そのビューよりも Post クラスとそれに関連付けられた変数にのみアクセスできますか? それで、これをどのようにプラグインできますか:
<%= user.name %>
ユーザーコントローラーを通過しなかったときは?
これは簡単なはずですが、その方法がわかりません:
ユーザーがアプリにログインしている場合、常にナビゲーションバーの右上にそのユーザーの名前を表示したいと考えています。しかし、それらが別のビューにある場合、たとえば Posts コントローラーの Posts ビューは、そのビューよりも Post クラスとそれに関連付けられた変数にのみアクセスできますか? それで、これをどのようにプラグインできますか:
<%= user.name %>
ユーザーコントローラーを通過しなかったときは?
多くの 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