Current_User Возвращает TrueClass вместо пользователя в контроллере, используя Devise
-
27-09-2019 - |
Вопрос
Я использую Devise 1.0.8 на рельсах 2.3.8 проекта. В моем тесте контроллера у меня есть:
context "when current_user is admin" do
should "render" do
sign_in Factory(:admin)
get :index
assert_response :success
end
end
А в сам контроллер есть следующее dre_filter:
def redirect_if_not_admin
puts current_user
redirect_to root_path unless current_user.try(:admin?)
end
Это вывод из моего теста:
true
false
NoMethodError: undefined method `admin?' for true:TrueClass
Таким образом, Current_USER верно, когда я использую Sign_in в тесте. Однако, когда я этого не сделаю, uce_user - это ноль, так что это определенно влияет. Заранее благодарю за любую помощь.
Решение
Я использовал подтверждение! Способ на ресурсе в Aff Affo_Create / Build вместо установки атрибутов на заводе, и это сделал трюк. Current_user равен True, когда на сайте есть неподтвержденный пользователь (кто-то, кто подписался, но еще не нажимает на ссылку подтверждения, отправленные на них).
Не связан с StackOverflow