Current_User Возвращает TrueClass вместо пользователя в контроллере, используя Devise

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

Вопрос

Я использую 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, когда на сайте есть неподтвержденный пользователь (кто-то, кто подписался, но еще не нажимает на ссылку подтверждения, отправленные на них).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top