How do I remove the Devise route to sign up?

后端 未结 15 2426
佛祖请我去吃肉
佛祖请我去吃肉 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:12

    This is an old question - but I recently had solve the same issue and came up with a solution which is far more elegant than:

    devise_for :users, :skip => [:registrations] 
    as :user do
      get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'
      put 'users' => 'devise/registrations#update', :as => 'user_registration'
    end
    

    And it gives the default names for the named routes (like cancel_user_registration) without being excessively verbose.

    devise_for :users, skip: [:registrations]
    
    # Recreates the Devise registrations routes
    # They act on a singular user (the signed in user)
    # Add the actions you want in 'only:'
    resource :users,
        only: [:edit, :update, :destroy],
        controller: 'devise/registrations',
        as: :user_registration do
      get 'cancel'
    end
    

    rake routes output with the default devise modules:

                      Prefix Verb   URI Pattern                    Controller#Action
            new_user_session GET    /users/sign_in(.:format)       devise/sessions#new
                user_session POST   /users/sign_in(.:format)       devise/sessions#create
        destroy_user_session DELETE /users/sign_out(.:format)      devise/sessions#destroy
               user_password POST   /users/password(.:format)      devise/passwords#create
           new_user_password GET    /users/password/new(.:format)  devise/passwords#new
          edit_user_password GET    /users/password/edit(.:format) devise/passwords#edit
                             PATCH  /users/password(.:format)      devise/passwords#update
                             PUT    /users/password(.:format)      devise/passwords#update
    cancel_user_registration GET    /users/cancel(.:format)        devise/registrations#cancel
      edit_user_registration GET    /users/edit(.:format)          devise/registrations#edit
           user_registration PATCH  /users(.:format)               devise/registrations#update
                             PUT    /users(.:format)               devise/registrations#update
                             DELETE /users(.:format)               devise/registrations#destroy
    

提交回复
热议问题