Я хотел бы добавить пару переменных экземпляра в свой контроллер, поскольку рассматриваемые переменные требуются из более чем одного представления действия. Однако приведенный ниже пример работает не так, как я ожидал.
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
Насколько я понимаю, Rails берет переменные экземпляра из контроллера и делает их доступными в представлении. Если я назначаю одни и те же переменные в методах действий, все работает нормально, но я не хочу делать это дважды. Почему мой способ не работает?
(Примечание: это немного бессмысленный пример, но я надеюсь, что он имеет смысл)
РЕДАКТИРОВАТЬ: я нашел ответ на этот вопрос здесь: Когда переменные экземпляра Ruby получают установить?
РЕДАКТИРОВАТЬ 2: когда лучше всего использовать фильтры, такие как before_filter и метод инициализации?