Me gustaría agregar un par de variables de instancia a mi controlador, ya que las variables en cuestión son necesarias desde más de una vista de acción. Sin embargo, el siguiente ejemplo no funciona como era de esperar.Por qué las variables de instancia de mi controlador no funcionan en vistas (Rails)
class ExampleController < ApplicationController
@var1 = "Cheese"
@var2 = "Tomato"
def show_pizza_topping
# What I want is the above instance vars from within the view here
end
def show_sandwich_filling
# What I want is the above instance vars from within the view here
end
end
Según tengo entendido, Rails toma las variables de instancia del controlador y las pone a disposición en la vista. Si asigno las mismas variables dentro de los métodos de acción, funciona bien, pero no quiero hacerlo dos veces. ¿Por qué mi camino no funciona?
(Nota: esto es un poco de un ejemplo basura, pero espero que tenga sentido)
EDIT: He encontrado la respuesta a esta pregunta aquí: When do Ruby instance variables get set?
EDIT 2: cuando Cuál es el mejor momento para usar filtros como before_filter y el método de inicialización?
Sí, gracias. Sin embargo, poco después de publicar esto encontré otra respuesta (actualicé la pregunta para reflejar esto). ¿Cuándo es el mejor momento para usar before_filter y/o initialize? –
Diría que debería usar un before_filter si es algún tipo de trabajo de configuración que tiene que funcionar en múltiples acciones. – theIV
Como un ejemplo del comentario que acabo de dejar, al verificar que alguien está conectado, normalmente puede tener un método en 'ApplicationController' y aplicar un' before_filter' a cualquier acción que requiera que el usuario esté conectado. No lo haría tiene sentido tener ese código en cada acción que requiere que alguien inicie sesión. – theIV