В моем блоге есть модель для разработки под названием Admin
.Только разрешить администратору создавать нового администратора
Я определенно не хочу, чтобы посетители моего сайта могли зарегистрироваться в качестве администратора. Так что я сделал следующее:
В моей config/routes.rb
devise_for :admins, controllers: { registrations: "registrations" }
После этого я создал новый app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
before_action :authenticate_admin!
end
Но когда я посещаю мой my.site/admins/sign_up
как «нормальный посетитель» authenticate_admin!
крюк не позвонил - так что я получаю полную регистрационную форму. Почему это не работает так, как ожидалось?
Спасибо. Почти работал для меня. Как отметил Ламп под принятым ответом в вашем связанном вопросе, мне пришлось заменить 'authenticate_admin!' На 'authenticate_scope!'. Если вы измените свой ответ на это, я могу принять его. – zarathustra
Только что отредактировал ответ. Рад, что это помогло! – mmichael