2012-09-27 75 views
7

我有幾個控制器用於特定目的,每個控制器都有「def index」功能。 Like/index使用主頁並調用未經身份驗證的主頁。/jobs/index是另一個,/ users/index是另一個。他們每個人都使用不同的控制器,如JobsController,HomeController,UsersController。只爲特定控制器調用before_filter

我的ApplicationController擁有的before_filter

before_filter :authenticate_user!, :except => [:index] 

這樣做的問題是,這也將跳過當我打電話/工作/索引或/用戶/指數(或與此有關的任何其他/ * /索引頁)。有沒有辦法讓我可以將「/ except」子句僅應用於「home#index」請求(即HomeController - >索引頁)。我試過了,

before_filter :authenticate_user!, :except => ["home#index"] but it doesn't work. 

回答

18

您可以使用

skip_before_filter :authenticate_user! , :only => [:index] 

home_controller爲跳過的before_filter爲行動...

相關問題