2016-03-14 108 views
0

之前我有一个前过滤器应该下台注册页面(/注册)上,但它仍然重定向到登录。过滤器不跳过注册页面

我该如何解决这个问题离开了注册页面,这是我的创建/新动作。

现在这是我的application_contorller.rb

before_filter :require_login 
    skip_before_filter :require_login, :except => [:create,:new,:accept] 

private 

    def require_login 
    unless current_user 
     redirect_to login_url 
    end 
    end 


end 

回答

1

试试这个:

before_filter :require_login, :except => [:create, :new, :accept] 

或者,您可以指定需要登录这样的网页:

before_filter :require_login, :only => [:delete, :index, :another_controller_action_that_requires_login, :etc] 

你”可能想要将此before_filter移动到app/controllers/users_controller.rb(或其他控制器负责用户注册)而不是将其留在app/controllers/application_controller.rb

如果你离开应用程序控制器的:before_filter并在一个单独的控制器(contact_form_controller.rb例如)另一:new:create动作那么的before_filter将应用于以及如果从ApplicationController继承。

+0

所以我尝试的第一个,它只是允许在不登录的所有页面。太奇怪了。 – rs19

+0

实际上我认为它的工作原理。谢谢你的帮助! – rs19

+0

它应该工作 - 看到关于从这个ApplicationController的过滤器移动到UsersController编辑(或签署任何UPS控制器有关)。 –