before_filter запускает несколько методов - PullRequest
5 голосов
/ 02 мая 2011

возможно ли иметь:

before_filter :authenticate_user! || :authenticate_admin!

Ответы [ 3 ]

6 голосов
/ 02 мая 2011
before_filter :do_authentication

def do_authentication
  authenticate_user! || authenticate_admin!
end
5 голосов
/ 02 мая 2011
before_filter {authenticate_user! || authenticate_admin!}

Переход в proc к методу before_filter будет наиболее близким к тому, что вы задали в своем вопросе.

0 голосов
/ 02 мая 2011

Поскольку :authenticate_user! является символом, :foo == true является действительным.Таким образом, ваш пример всегда будет равняться before_filter :authenticate_user!

Попробуйте что-то вроде (не уверен в ваших настройках здесь ..):

if method_defined?(:authenticate_user!)
  before_filter :authenticate_user!
else
  before_filter :authenticate_admin!
end

Если вы определили оба метода и хотитезапустите authenticate_user!, затем, если это вернет false, запустите authenticate_admin!, просто создайте один authenticate! метод, который проверяет использование / admin, и запустите before_filter.

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