Разработка контроллера регистрации / поведения страницы

#ruby-on-rails #devise

#ruby-on-rails #разработка

Вопрос:

  1. Есть ли способ избежать обратного вызова :require_no_authentication ?
  • Добавление before_action:authenticate_user!в контроллере ничего не происходит. Я предполагаю, что это из-за:require_no_authentication в исходном коде Devise, который добавляется к цепочке обратного вызова.
  1. Можем ли мы при входе в систему изменить поведение и фактически получить доступ к странице регистрации?

Заранее спасибо!

Комментарии:

1. Почему вы хотите получить доступ к странице регистрации, когда вы уже вошли в систему?

2. Цель состоит в том, чтобы создавать новых пользователей и не быть доступными для регистрации всем. Например, разработка Invitable. Выполнение вручную с использованием модуля devise confirmable. Не нужно много реализаций в разработке, просто некоторая логика в разработке контроллера и пользовательской модели.

Ответ №1:

Это достаточно просто сделать. Вы можете просто создать свой собственный контроллер, чтобы переопределить поведение:

В app/controllers/users/registrations_controller.rb :

 class Users::RegistrationsController < Devise::RegistrationsController
  skip_before_action :require_no_authentication
end
  

В routes.rb вам нужно указать, чтобы Devise использовал ваш контроллер:

 devise_for :users, controllers: {
  registrations: "users/registrations"
}
  

Я сделал некоторые предположения о вашей настройке Devise, но это должно дать вам общее представление.

Комментарии:

1. Спасибо, Джон, у меня сработало: prepend_before_action :требуется только проверка подлинности : :none