From 67b069579ef34fba5f576e913e0547792a4dce9d Mon Sep 17 00:00:00 2001 From: Ryan Bates Date: Thu, 5 Aug 2010 16:52:37 -0700 Subject: [PATCH] don't pass nil to 'new' call when no params are specified - closes #63 --- lib/cancan/controller_resource.rb | 2 +- spec/cancan/controller_resource_spec.rb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/cancan/controller_resource.rb b/lib/cancan/controller_resource.rb index 94d3ca7..4f2768d 100644 --- a/lib/cancan/controller_resource.rb +++ b/lib/cancan/controller_resource.rb @@ -41,7 +41,7 @@ module CanCan def load_resource_instance if !parent? && new_actions.include?(@params[:action].to_sym) - resource_base.kind_of?(Class) ? resource_base.new(@params[name.to_sym]) : resource_base.build(@params[name.to_sym]) + @params[name.to_sym] ? resource_base.new(@params[name.to_sym]) : resource_base.new elsif id_param resource_base.find(id_param) end diff --git a/spec/cancan/controller_resource_spec.rb b/spec/cancan/controller_resource_spec.rb index df9e104..f06dd6a 100644 --- a/spec/cancan/controller_resource_spec.rb +++ b/spec/cancan/controller_resource_spec.rb @@ -40,8 +40,8 @@ describe CanCan::ControllerResource do @controller.instance_variable_get(:@ability).should == :some_resource end - it "should build a new resource even if attribute hash isn't specified" do - stub(Ability).new(nil) { :some_resource } + it "should build a new resource with no arguments if attribute hash isn't specified" do + mock(Ability).new { :some_resource } resource = CanCan::ControllerResource.new(@controller, :controller => "abilities", :action => "new") resource.load_resource @controller.instance_variable_get(:@ability).should == :some_resource @@ -80,7 +80,7 @@ describe CanCan::ControllerResource do end it "should build a resource when on custom new action even when params[:id] exists" do - stub(Ability).new(nil) { :some_resource } + stub(Ability).new { :some_resource } resource = CanCan::ControllerResource.new(@controller, {:controller => "abilities", :action => "build", :id => 123}, {:new => :build}) resource.load_resource @controller.instance_variable_get(:@ability).should == :some_resource