Подписание пользователем после регистрации осуществляется методом sign_up
в Devise::RegistrationsController
, который вызывается действием [create][1]
. Вы можете просто переопределить этот метод с пустым, чтобы предотвратить вход. Это сработало для меня!
В app/controllers/users/registrations_controller.rb
:
class Users::RegistrationsController < Devise::RegistrationsController
def sign_up(resource_name, resource)
end
end
Примечание: заменить users
с именем таблицы.
Extra:
Если разрешить только администраторам добавлять новых пользователей, или, возможно, других администраторов, а также использовать создать действие, чтобы добавить их, этот предыдущий метод также даст вам преимущество, не имея подписать вне. Вы можете настроить то, что страница будет перенаправлен после регистрации путем переопределения метода after_sign_up_path_for
в app/controllers/application_controller.rb
:
class ApplicationController < ActionController::Base
def after_sign_up_path_for(user)
'/users/show' # replace with the path you want
end
Есть ли какой-либо другой шаг пользователям необходимо выполнить? –
@ ZachKemp, администратор должен их принять, они ничего не делают. –
См. Эту страницу на вики-странице Devise: [Как сделать: admin для активации учетной записи перед sign_in] (https://github.com/plataformatec/devise/wiki/How-To%3a-Require-admin-to-activate- account-before-sign_in) –