Ruby on rails 设计前过滤器,防止访问;新的“用户注册路径”;除非用户已登录
我正在rails应用程序中使用Desive。我的用户模型是可注册的,这意味着任何人都可以进入/Users/sign\u并创建一个新帐户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
是否可以保护此路由,以便只有已登录的用户才能创建新帐户?使用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来解决这个问题相反,你有一个很好的观点,通常一个标准的Rails应用程序并不是对每个动作都使用Desive,所以你的解决方案是非常有效的。这就是我的工作。
class RegistrationsController < Devise::RegistrationsController
before_filter :prevent_sign_up
private
def prevent_sign_up
redirect_to new_user_session_path and return
end
end