2012-03-02 99 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

這是我在其他框架中所做的,只是我不知道如何在rails中執行此操作。會嘗試一下。 – Kezzer 2012-03-02 21:58:12