Разработать фильтр, который запрещает доступ к «new_user_registration_path», если пользователь не вошел в систему - PullRequest
7 голосов
/ 18 ноября 2010

Я использую Devise в своем приложении rails.Модель «Мои пользователи» доступна для регистрации. Это означает, что любой может перейти на / users / sign_up и создать новую учетную запись.

Можно ли защитить этот маршрут, так что только подписанные пользователи могутновые аккаунты?

Ответы [ 2 ]

12 голосов
/ 18 ноября 2010

Создание контроллера с наследованием класса Devise :: RegistrationsController.После вы можете добавить свой фильтр.Вам просто нужно определить этот контроллер как контроллер регистрации

class RegistrationsController < Devise::RegistrationsController
  before_filter :authenticate_user!
end

В вашем маршруте. Rb

devise_for :users, :controllers => { :registrations => 'registrations'}
4 голосов
/ 04 июля 2012

Это не сработало для меня, потому что 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...