仅为特定控制器调用before_filter

时间:2012-09-27 17:45:59

标签: ruby-on-rails ruby-on-rails-3 controller

我有一些控制器用于特定目的,每个控制器都有一个“def index”功能。 like / index使用主页并调用未经身份验证的主页。 / jobs / index是另一个,/ users / index是另一个。他们每个人都使用不同的控制器,如JobsController,HomeController,UsersController。

我的ApplicationController有一个before_Filter

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

这个问题是,当我调用/ jobs / index或/ users / index(或任何其他/ * /索引页面)时,这也会跳过。有没有办法让我只能将“/ except”子句应用于“home #index”请求(即HomeController - >索引页面)。我试过了,

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

1 个答案:

答案 0 :(得分:19)

您可以使用

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

home_controller中跳过了该操作的before_filter ...