Tengo una variable a la que quiero acceder en mi application.html.erb por lo que está disponible para todas las vistas. Sé que puedo entrar y agregarlo a cada controlador y agregarlo a cada función para que esté disponible para indexar, mostrar, etc. Sin embargo, eso es una locura. Si quiero que esté en un encabezado, debería poder acceder a él en el archivo application.html.erb, de modo que esté en todas mis vistas. Un ejemplo de uno de mis reguladores se está trabajando en ...RoR haciendo una variable disponible para application.html.erb por lo que está en todas las vistas en un encabezado
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
Aquí es mi función en ApplicationController:
private
def current_car
CarInfo.find(session[:car_info_id])
end
Si intento agregar @current_car_name = current_car.name a mi modo ApplicationController la variable está disponible para mi application.html.erb bombardea con un error de Enrutamiento a current_car. Sé que la función funciona porque si la llamo en un controlador diferente funciona bien y puedo acceder a la variable producida en esa vista de índice o lo que sea. Solo necesito saber cómo llamar a la función una vez y tener la variable accesible para todas las vistas, ya que estará en mi encabezado. Podría poner la información en una variable de sesión, pero leí en alguna parte que debería limitar las variables de sesión a los ID y generar la otra información necesaria de esos ID.
Gracias de antemano,
No debe hacer que el método sea privado. El controlador de la aplicación es siempre una clase base de otro controlador y, por lo tanto, los métodos privados no estarán disponibles. Los métodos privados de una clase base no están disponibles en la subclase. Aparte de esto, te recomiendo que sigas el consejo de Dylan Markow. – Mischa