如何为每个控制器栏设置一个before_filter?

时间:2010-09-01 13:49:29

标签: ruby-on-rails authentication before-filter

在Ruby on Rails中,我想为每个控制器添加一个before_filter,除了一个。目前我在ApplicationController

before_filter :authenticate

有没有办法在ApplicationController中应用此规则,而不是在每个控制器中添加before_filter :authenticate,除了公共控制器?

2 个答案:

答案 0 :(得分:7)

如果你想在除了一个控制器之外的每个控制器中运行这个过滤器,为什么不直接跳过它?

class PublicController < ApplicationController
  skip_before_filter :authenticate
end

如果您想跳过特定操作,可以使用:except

before_filter :authenticate, :except => [ :index ]

答案 1 :(得分:3)

将前置过滤器放在ApplicationController中,然后在不需要它的控制器中跳过它:

skip_before_filter :authenticate