Разработайте перед фильтром, который предотвращает доступ к «new_user_registration_Path», если пользователь не будет входа

StackOverflow https://stackoverflow.com/questions/4213006

Вопрос

Я использую разработку в моем приложении 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top