仅为特定控制器调用before_filter

Raj*_*jat 8 controller ruby-on-rails ruby-on-rails-3

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

我的ApplicationController有一个before_Filter

before_filter :authenticate_user!, :except => [:index]
Run Code Online (Sandbox Code Playgroud)

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

before_filter :authenticate_user!, :except => ["home#index"] but it doesn't work.
Run Code Online (Sandbox Code Playgroud)

Rah*_*arg 20

您可以使用

skip_before_filter :authenticate_user! , :only => [:index]
Run Code Online (Sandbox Code Playgroud)

在你home_controller的跳过the_filter的那个动作...