Как сделать WhiteList с before_filter, удалив определенные контроллеры - PullRequest
1 голос
/ 15 апреля 2011

Мне интересно, есть ли способ аутентификации контроллера в белом списке с использованием before_filter, исключая также те, которые вы можете захотеть. Примерно так в контроллере приложения:

before_filter :authenticate_user!, :except_controller => :home

Есть ли способ сделать это без необходимости помещать before_filter на каждый контроллер, что немного грязно?

Ответы [ 2 ]

3 голосов
/ 15 апреля 2011

Добавьте это к вашему домашнему контроллеру, чтобы пропустить аутентификацию всех действий на вашем домашнем контроллере.

skip_before_filter authenticate_user!
2 голосов
/ 15 апреля 2011

Поместите before_filter в application_controller.Все остальные ваши контроллеры должны расширить этот (при условии нормальной установки рельсов) и, таким образом, наследовать поведение.

Затем поместите следующее в любой контроллер, где вы хотите пропустить фильтр before:

skip_before_filter :authenticate_user!, :only => [:new, :create]

Опция: only, ну, необязательно.Используйте его, чтобы указать, какие методы пропускают фильтр до.Если у вас нет: only, тогда весь контроллер пропустит before_filter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...