Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

will_paginate undefined method `total_pages'

What am I missing here? I am using the haml_scaffold generator and the pages work fine with will_paginate. When I start tinkering I end up with this 'total_pages' error and I'm not sure what I am doing that is causing it. Anyone have any insight? I'm using mislav-will_paginate 2.3.11.

mike@jauntyjackalope:~/project$ script/console Loading development environment (Rails 2.3.4) >> @locations = Location.find_all_by_city("springfield") => [#<Location id: 3, address: "123 Main St", city: "springfield", phone: "321-1234", business_id: 2>] >> @locations.class => Array >> @locations.collect{|loc| loc.business} => [#<Business id: 2, name: "A Bar", website: "www.abar.com", business_owner_id: 1, created_at: "2009-08-31 21:13:10", updated_at: "2009-08-31 21:13:10">] >> @locations.class => Array >> @locations.paginate(:page => 1, :per_page => 2) => [#<Location id: 3, address: "123 Main St", city: "springfield", phone: "321-1234", business_id: 2>] >> helper.will_paginate(@locations) NoMethodError: undefined method `total_pages' for #<Array:0xb6f83bc4>  from /var/lib/gems/1.8/gems/mislav-will_paginate-2.3.11/lib/will_paginate/view_helpers.rb:197:in `total_pages_for_collection'  from /var/lib/gems/1.8/gems/mislav-will_paginate-2.3.11/lib/will_paginate/view_helpers.rb:98:in `will_paginate'  from (irb):7  >> y @locations ---  - !ruby/object:Location    attributes:      city: springfield     business_id: "2"     id: "3"     phone: 321-1234     address: 123 Main St   attributes_cache: {}    business: !ruby/object:Business      attributes:        name: A Bar       updated_at: 2009-08-31 21:13:10       website: www.abar.com       id: "2"       created_at: 2009-08-31 21:13:10       business_owner_id: "1"     attributes_cache: {}  => nil >>  
like image 846
mikewilliamson Avatar asked Sep 11 '09 03:09

mikewilliamson


2 Answers

try to change

@locations.paginate(:page => 1, :per_page => 2) 

to

@locations = @locations.paginate(:page => 1, :per_page => 2) 

hope this helps

like image 143
Jirapong Avatar answered Sep 19 '22 14:09

Jirapong


include

require 'will_paginate/array'  

before loading that code will solve your problem.

like image 39
Neeraj Kumar Avatar answered Sep 19 '22 14:09

Neeraj Kumar