在filter之前进行设计,以防止访问“new_user_registration_path”,除非用户已登录
我在我的rails应用程序中使用Devise。 我的用户模型是可注册的,这意味着任何人都可以转到/ users / sign_up并创建一个新帐户。
是否可以保护此路由,以便只有signed_in用户才能创建新帐户?
使用类Devise :: RegistrationsController heriting创建一个Controller。 您可以添加filter。 您只需要将此控制器定义为注册控制器
class RegistrationsController < Devise::RegistrationsController before_filter :authenticate_user! end
在您的routes.rb中
devise_for :users, :controllers => { :registrations => 'registrations'}
它对我没用,因为authenticate_user!
没有被召唤。
我这样解决了:
class RegistrationsController < Devise::RegistrationsController before_filter :prevent_sign_up private def prevent_sign_up redirect_to new_user_session_path and return end end