Я использую Devise 1.0.8 в проекте Rails 2.3.8. В моем тесте контроллера у меня есть:
context "when current_user is admin" do
should "render" do
sign_in Factory(:admin)
get :index
assert_response :success
end
end
А в самом контроллере есть следующий before_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 имеет значение true, когда я использую sign_in в тесте. Однако, когда я этого не делаю, current_user равен nil, так что это определенно затрагивается. Заранее спасибо за любую помощь.