2011-07-10 38 views
0

我有一個即將到來的網頁 - 它由數據庫中的布爾值管理,應用程序控制器由before_filter調用。skip_filter in rails

def is_it_live? 
    @setting = Setting.find(1) 

    if @setting.is_it_live 
    return true 
    else 
    unless admin_signed_in? 
     redirect_to comingsoon_path 
    end 
    end 
end 

我試圖用具體的控制器,應該是公開的,如果該網站不活,特別是一個是爲comingsoonskip_filter ...但它不工作。當我進入即將到來的路徑時,我得到一個重定向,因爲它仍然在應用程序控制器中運行before_filter。有任何解決這個問題的方法嗎?或者更好的方法來處理邏輯?

回答

0

嗯,我解決了這個問題。我還聲明is_it_live?作爲使用視圖中的邏輯的幫助方法,所以問題可能是過濾器仍然被視圖調用(儘管看起來如果視圖的控制器將其從過濾器鏈中移除,它應該被刪除的觀點呢?但也許我的想法就這樣),把它解決問題。

1

奇怪,你有沒有嘗試:

skip_before_filter :is_it_live, :only => [:action1, :action2] 
+0

是啊...我發誓一切工作正常,我上次檢查。 – Slick23

+0

這很瘋狂,你確定你的路線? – apneadiving

+0

是的,至少我認爲:'comingsoon /comingsoon(.:format){:action =>「index」,:controller =>「temporary」} – Slick23