2012-03-02 4 views
0

Я хочу визуализировать представление с выполняемым действием. В основном у меня есть ряд «предстоящих заказов», которые нужно отображать на каждой странице. Это быстрый взгляд на то, что подходит, чтобы пользователь мог получить общее представление о том, что происходит.Оказание действия контроллера

То, что я планировал делать, - это механизм кэширования для этого конкретного действия, поэтому тогда, когда я его обработал, скорее всего, в макете, тогда это будет быстро.

Возможно ли это? Кажется, что рендеринг шаблона и частичный рендеринг не вызывают действие, которое означает, что переменные экземпляра, доступные в этом представлении, недоступны или просто не делают то, что я хочу.

ответ

2

Хммм, если я понимаю ваш вопрос, я думаю, вы хотите использовать before_filter. A before_filter - это обратный вызов, который запускается перед каждым действием любого контроллера, где зарегистрирован before_filter или у любого из его потомков.

Если вы действительно хотите вызвать функцию перед любым действием любого контроллера, то способ, которым я рекомендую это сделать, находится в ApplicationController, тогда он будет выполнен для любого действия на любом контроллере, который наследует от ActionController.

class ApplicationController < ActionController::Base 
    before_filter :do_something 

    def do_something 
    WHATEVER IT IS YOU WANT TO DO INCLUDING SETTING INSTANCE VARIABLES 
    end 
end 

Тогда вы можете гарантирую, что do_something будет вызываться перед любым действием.

Надеюсь, это поможет.

+0

Это то, что я бы сделал в других рамках, это просто я не знал, как это сделать в рельсах. Попробуй. – Kezzer

Смежные вопросы