#ruby-on-rails #devise
#ruby-on-rails #разработка
Вопрос:
- Есть ли способ избежать обратного вызова :require_no_authentication ?
- Добавление before_action:authenticate_user!в контроллере ничего не происходит. Я предполагаю, что это из-за:require_no_authentication в исходном коде Devise, который добавляется к цепочке обратного вызова.
- Можем ли мы при входе в систему изменить поведение и фактически получить доступ к странице регистрации?
Заранее спасибо!
Комментарии:
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