Я работаю с приложением Rails 4. У меня есть модель пользователей и модель операторов (это как суперадминистратор). Пусть контроллер скажет testcontroller, у которого есть следующий фильтр для проверки подлинности пользователя.
before_filter :authenticate_user!
Теперь мне нужно получить доступ к этому контроллеру тестов как к Оператору. (в моем случае аутентификация пользователя и оператора разные). Когда я пытаюсь получить доступ, в качестве моего сеанса будет current_operator, это контроллер before_filter, у которого есть autheticate_user! меня останавливает.
Я попытался добавить код удара в testcontroller
before_filter :check_operator
#before_filter :authenticate_user!
private
def check_operator
if current_operator!=nil
:authenticate_operator!
else
:authenticate_user!
end
конец
И все еще не может получить доступ к testcontroller в качестве оператора. Любые мысли мне бы очень помогли





У меня могут быть идеи по этому поводу:
authenticate_user!.check_operator никогда не попадет в authenticate_user!, так как вы всегда попадете в authenticate_operator!.NB: Вы должны использовать before_action, это новый синтаксис для before_filter :)
Я считаю, что это правильно.
authenticate_user!исходит от Devise, так что вы хотите переопределить это.check_operatorне используется Devise. github.com/plataformatec/devise#controller-filters-and-helpe rs