Разработайте перед фильтром, который предотвращает доступ к «new_user_registration_Path», если пользователь не будет входа
-
26-09-2019 - |
Вопрос
Я использую разработку в моем приложении Rails. Мои пользователи модели доступны, что означает, что любой может пойти в / пользователи / sign_up и создать новую учетную запись.
Можно ли защитить этот маршрут, так что только подписаны пользователи, могут создавать новые учетные записи?
Решение
Создайте контроллер с Class Devise :: Регистрация контролирует наследство. После того, как вы можете добавить ваш фильтр. Вам просто нужно определить этот контроллер, как контроллер регистрации
class RegistrationsController < Devise::RegistrationsController
before_filter :authenticate_user!
end
В ваших маршрутах
devise_for :users, :controllers => { :registrations => 'registrations'}
Другие советы
Это не работало для меня, потому что authenticate_user!
не вызывается.
Я исправил это таким образом:
class RegistrationsController < Devise::RegistrationsController
before_filter :prevent_sign_up
private
def prevent_sign_up
redirect_to new_user_session_path and return
end
end
Не связан с StackOverflow