我只在應用程序處於生產模式時才試圖使用skip_before_filter。 (我不希望公開我的開發實例,我希望應用程序自動檢測它的實例類型,並在未處於生產模式時顯示登錄屏幕)。所以,我的應用程序控制器具有以下行:skip_before_filter忽略條件
before_filter :authenticate_user!, :except => "sign_in" #redirects to log-in
而控制器用於顯示網頁有這一行:
skip_before_filter :authenticate_user!, :only => :show, :if => :in_production
#public pages are public, but only when in production.
而且in_production很簡單:
def in_production
ENV['RAILS_ENV']=='production'
end
我認識到,有可能是其他途徑這裏,但我很好奇,爲什麼skip_before_filter似乎忽視了條件和永遠只是跳過的before_filter。有什麼我失蹤?
使用Rails 2.3.9和Devise身份驗證gem。 – Smudge 2011-01-09 01:03:27