在Ruby on Rails中,我想为每个控制器添加一个before_filter,除了一个。目前我在ApplicationController
:
before_filter :authenticate
有没有办法在ApplicationController
中应用此规则,而不是在每个控制器中添加before_filter :authenticate
,除了公共控制器?
答案 0 :(得分:7)
如果你想在除了一个控制器之外的每个控制器中运行这个过滤器,为什么不直接跳过它?
class PublicController < ApplicationController
skip_before_filter :authenticate
end
如果您想跳过特定操作,可以使用:except
:
before_filter :authenticate, :except => [ :index ]
答案 1 :(得分:3)
将前置过滤器放在ApplicationController
中,然后在不需要它的控制器中跳过它:
skip_before_filter :authenticate