Nuestros mejores desarrolladores agotaron sus provisiones de café, en su búsqueda todo el tiempo por la resolución, hasta que Joel halló el resultado en Beanstalk por lo tanto en este momento la comparte aquí.
Solución:
La forma más fácil es simplemente eliminar :registerable
módulo de diseño de la lista predeterminada definida en su modelo (el nombre de clase utilizado para los usuarios de la aplicación, generalmente Usuario).
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
...
end
Entonces lo tendrás así:
class User < ActiveRecord::Base
devise :database_authenticatable,
:recoverable, :rememberable, :trackable, :validatable
...
end
Solución para eliminar la ruta sign_up de Devise
Introduzca lo siguiente al principio de routes.rb
Rails.application.routes.draw do
devise_scope :user do
get "/sign_in" => "devise/sessions#new" # custom path to login/sign_in
get "/sign_up" => "devise/registrations#new", as: "new_user_registration" # custom path to sign_up/registration
end
...Después de la declaración anterior, agregue lo siguiente a continuación en routes.rb
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
Esto eliminará/deshabilitará el user/sign_up
camino para Devise sin romper edit_user_registration_path
Reinicie su servidor Rails y debería funcionar.
Ya que como es solo un alias para diseñar_alcancepuedes poner todo eso en un solo bloque.
devise_for :users, skip: [:registrations]
as :user do
get "/sign_in" => "devise/sessions#new" # custom path to login/sign_in
get "/sign_up" => "devise/registrations#new", as: "new_user_registration" # custom path to sign_up/registration
get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'
put 'users' => 'devise/registrations#update', :as => 'user_registration'
end