How do I remove the Devise route to sign up?

后端 未结 15 2335
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-07 07:36

I\'m using Devise in a Rails 3 app, but in this case, a user must be created by an existing user, who determines what permissions he/she will have.

Because of this, I

15条回答
  •  北海茫月
    2020-12-07 08:23

    I found another post similar to this one and wanted to share an answer @chrisnicola gave. In the post they were attempting to only block user signup's during production.

    You could also modify the registrations controller. You can use something like this:

    In "app/controllers/registrations_controller.rb"

    class RegistrationsController < Devise::RegistrationsController
      def new
        flash[:info] = 'Registrations are not open.'
        redirect_to root_path
      end
    
      def create
        flash[:info] = 'Registrations are not open.'
        redirect_to root_path
      end
    end
    

    This will override devise's controller and use the above methods instead. They added flash messages incase that someone somehow made it to the sign_up page. You should also be able to change the redirect to any path you like.

    Also in "config/routes.rb" you can add this:

    devise_for :users, :controllers => { :registrations => "registrations" }
    

    Leaving it like this will allow you to use the standard devise edit your profile. If you wish you can still override the edit profile option by including

      def update
      end
    

    in the "app/controllers/registrations_controller.rb"

提交回复
热议问题