0
私はRails 2.3.8プロジェクトでDevise 1.0.8を使用しています。私は私のコントローラのテストで:current_userは、Deviseを使用しているコントローラではなく、TrueClassを返します
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がされテストでsign_inを使うと本当です。しかし、私がそうしないと、current_userはnilなので、間違いなく影響を受けています。助けを前にありがとう。