fix resource loading for new action
This commit is contained in:
		
							parent
							
								
									aaed265c91
								
							
						
					
					
						commit
						7b299b50fc
					
				@ -17,10 +17,12 @@ module CanCan
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    def load_resource # TODO this could use some refactoring
 | 
					    def load_resource # TODO this could use some refactoring
 | 
				
			||||||
      if params[:id]
 | 
					      unless params[:action] == "index"
 | 
				
			||||||
        instance_variable_set("@#{params[:controller].singularize}", params[:controller].singularize.camelcase.constantize.find(params[:id]))
 | 
					        if params[:id]
 | 
				
			||||||
      elsif params[params[:controller].singularize.to_sym]
 | 
					          instance_variable_set("@#{params[:controller].singularize}", params[:controller].singularize.camelcase.constantize.find(params[:id]))
 | 
				
			||||||
        instance_variable_set("@#{params[:controller].singularize}", params[:controller].singularize.camelcase.constantize.new(params[params[:controller].singularize.to_sym]))
 | 
					        else
 | 
				
			||||||
 | 
					          instance_variable_set("@#{params[:controller].singularize}", params[:controller].singularize.camelcase.constantize.new(params[params[:controller].singularize.to_sym]))
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
				
			|||||||
@ -44,7 +44,14 @@ describe CanCan::ControllerAdditions do
 | 
				
			|||||||
    @controller.instance_variable_get(:@ability).should == :some_resource
 | 
					    @controller.instance_variable_get(:@ability).should == :some_resource
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  it "should not build a resource of neither id nor attributes are specified" do
 | 
					  it "should build a new resource even if attribute hash isn't specified" do
 | 
				
			||||||
 | 
					    stub(@controller).params { {:controller => "abilities", :action => "new"} }
 | 
				
			||||||
 | 
					    stub(Ability).new(nil) { :some_resource }
 | 
				
			||||||
 | 
					    @controller.load_resource
 | 
				
			||||||
 | 
					    @controller.instance_variable_get(:@ability).should == :some_resource
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  it "should not build a resource when on index action" do
 | 
				
			||||||
    stub(@controller).params { {:controller => "abilities", :action => "index"} }
 | 
					    stub(@controller).params { {:controller => "abilities", :action => "index"} }
 | 
				
			||||||
    @controller.load_resource
 | 
					    @controller.load_resource
 | 
				
			||||||
    @controller.instance_variable_get(:@ability).should be_nil
 | 
					    @controller.instance_variable_get(:@ability).should be_nil
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user