Adding :class option to load_resource so one can customize which class to use for the model - closes #17

This commit is contained in:
Ryan Bates
2009-12-14 08:31:49 -08:00
parent e9f01300b6
commit 021f33c9a0
6 changed files with 26 additions and 4 deletions

View File

@@ -40,4 +40,10 @@ describe CanCan::ControllerResource do
CanCan::ControllerResource.new(@controller, :ability).find(123)
@controller.instance_variable_get(:@ability).should == :some_ability
end
it "should use the model class option if provided" do
stub(Person).find(123) { :some_resource }
CanCan::ControllerResource.new(@controller, :ability, nil, :class => Person).find(123)
@controller.instance_variable_get(:@ability).should == :some_resource
end
end

View File

@@ -105,4 +105,11 @@ describe CanCan::ResourceAuthorization do
@controller.instance_variable_get(:@person).should == :some_person
@controller.instance_variable_get(:@ability).should == :some_ability
end
it "should load the model using a custom class" do
stub(Person).find(123) { :some_resource }
authorization = CanCan::ResourceAuthorization.new(@controller, {:controller => "abilities", :action => "show", :id => 123}, {:class => Person})
authorization.load_resource
@controller.instance_variable_get(:@ability).should == :some_resource
end
end