私は変数application.html.erbにアクセスしたいので、すべてのビューで利用できます。私はそれを各コントローラに追加して各機能に追加することができるので、インデックス作成、表示などが可能です。しかし、それは狂っています。それをヘッダーに入れたいのであれば、application.html.erbファイルにアクセスできるはずですので、すべてのビューにあります。それはで働いている私のコントローラの1例...RoR変数をapplication.html.erbで利用できるようにして、ヘッダのすべてのビューに表示するようにしました。
def index
if session[:car_info_id]
@current_car_name = current_car.name
end
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @miles }
end
end
はここでApplicationControllerにの私の関数である。
private
def current_car
CarInfo.find(session[:car_info_id])
end
私はApplicationControllerにに@current_car_name = current_car.nameを追加しようとするので、変数は私のapplication.html.erbで利用可能です。これはRouting to current_carエラーで爆撃されます。私は別のコントローラでそれを呼び出すと正常に動作し、そのインデックスビューで生成された変数にアクセスすることができるので、関数が機能することが分かります。関数を一度呼び出す方法を知っているだけで、変数がすべてのビューにアクセスできるようにする必要があります。私は情報をセッション変数に入れることができましたが、セッション変数をidsに制限し、それらのidsから他の必要な情報を生成する必要があります。事前に
おかげで、
このメソッドを非公開にしないでください。アプリケーションコントローラは常に別のコントローラの基本クラスであるため、プライベートメソッドは使用できません。基本クラスのプライベートメソッドは、サブクラスでは使用できません。これ以外にも、ディラン・マルコウの助言に従うことをお勧めします。 – Mischa