Ich verwende Devise 1.0.8 für ein Rails 2.3.8-Projekt. In meinem Controller Test habe ich:current_user gibt TrueClass anstelle eines Benutzers in einem Controller mit Devise zurück
context "when current_user is admin" do
should "render" do
sign_in Factory(:admin)
get :index
assert_response :success
end
end
Und in der Steuerung selbst, gibt es die folgenden before_filter:
def redirect_if_not_admin
puts current_user
redirect_to root_path unless current_user.try(:admin?)
end
Dies ist die Ausgabe von meinem Test:
true
false
NoMethodError: undefined method `admin?' for true:TrueClass
So current_user ist True, wenn ich sign_in im Test verwende. Aber wenn ich es nicht tue, ist current_user gleich Null, also ist es definitiv betroffen. Vielen Dank im Voraus für jede Hilfe.