如何使用before_filter WhiteList,删除某些控制器

时间:2011-04-14 22:32:00

标签: ruby-on-rails

我想知道是否有办法使用before_filter将控制器身份验证列入白名单,也不包括您可能想要的那些。在应用程序控制器中有类似的东西:

before_filter :authenticate_user!, :except_controller => :home

有没有办法做到这一点,而不必在每个控制器上放置一个before_filter,这有点混乱?

2 个答案:

答案 0 :(得分:3)

将此添加到您的家庭控制器,以跳过家庭控制器上所有操作的身份验证。

skip_before_filter authenticate_user!

答案 1 :(得分:2)

将before_filter放在application_controller中。所有其他控制器都应扩展此控制器(假设正常的轨道设置),从而继承行为。

然后,将以下内容放在要跳过前过滤器的任何控制器中:

skip_before_filter :authenticate_user!, :only => [:new, :create]

唯一的选择是,可选的。使用它指定哪些方法跳过前过滤器。如果您没有:only,则整个控制器将跳过before_filter。