Ruby on rails 设计前过滤器,防止访问;新的“用户注册路径”;除非用户已登录

Ruby on rails 设计前过滤器,防止访问;新的“用户注册路径”;除非用户已登录,ruby-on-rails,ruby-on-rails-3,devise,Ruby On Rails,Ruby On Rails 3,Devise,我正在rails应用程序中使用Desive。我的用户模型是可注册的,这意味着任何人都可以进入/Users/sign\u并创建一个新帐户 是否可以保护此路由,以便只有已登录的用户才能创建新帐户?使用DeVICE::RegistrationsController heriting类创建控制器。之后,您可以添加您的过滤器。您只需要像注册控制器一样定义这个控制器 class RegistrationsController < Devise::RegistrationsController be

我正在rails应用程序中使用Desive。我的用户模型是可注册的,这意味着任何人都可以进入/Users/sign\u并创建一个新帐户


是否可以保护此路由,以便只有已登录的用户才能创建新帐户?

使用DeVICE::RegistrationsController heriting类创建控制器。之后,您可以添加您的过滤器。您只需要像注册控制器一样定义这个控制器

class RegistrationsController < Devise::RegistrationsController
  before_filter :authenticate_user!
end

它对我不起作用,因为
authenticate\u用户未被调用

我是这样做的:

class RegistrationsController < Devise::RegistrationsController
    before_filter :prevent_sign_up

private
    def prevent_sign_up
        redirect_to new_user_session_path and return
    end
end
类注册控制器
@nverinaud我知道你发表评论已经一年多了,但是,作为提醒,你可以使用
authenticate\u scope来解决这个问题class RegistrationsController < Devise::RegistrationsController
    before_filter :prevent_sign_up

private
    def prevent_sign_up
        redirect_to new_user_session_path and return
    end
end