我想知道是否有办法使用before_filter将控制器身份验证列入白名单,也不包括您可能想要的那些。在应用程序控制器中有类似的东西:
before_filter :authenticate_user!, :except_controller => :home
有没有办法做到这一点,而不必在每个控制器上放置一个before_filter,这有点混乱?
答案 0 :(得分:3)
将此添加到您的家庭控制器,以跳过家庭控制器上所有操作的身份验证。
skip_before_filter authenticate_user!
答案 1 :(得分:2)
将before_filter放在application_controller中。所有其他控制器都应扩展此控制器(假设正常的轨道设置),从而继承行为。
然后,将以下内容放在要跳过前过滤器的任何控制器中:
skip_before_filter :authenticate_user!, :only => [:new, :create]
唯一的选择是,可选的。使用它指定哪些方法跳过前过滤器。如果您没有:only,则整个控制器将跳过before_filter。