I'm not sure what I did, but kaminari has started acting weird in my app.
In my controller:
@producers = Producer.order(:name).page(params[:page])
view:
<%= paginate @producers %>
results in:
undefined method `num_pages' for #<ActiveRecord::Relation:0x000001026e6308>
If I add .per in my controller:
@producers = Producer.order(:name).page(params[:page]).per(25)
I get
undefined local variable or method `per' for #<ActiveRecord::Relation:0x0000010928ef60>
Finally, strangely, if I move my .order(:name)
to the end, it works:
@producers = Producer.page(params[:page]).order(:name)
I'm guessing some other gem I have installed has a page
scope or method that's causing problems?
Thanks.
I had the same problem with another gem that required will_paginate. The issue was resolved with this code snippet which was taken from active_admin wiki page:
Put it in an initializer.
To solve the problem, include
gem 'kaminari'
and removewill_paginate
. Since I have already been usingwill_paginate
, I just updated my current will_paginate calls to kaminari. They are very similar to implement and easy enough to change.I tried johnnycakes's solution, but it kept giving me stack level too deep errors on the dashboard (similar to https://github.com/gregbell/active_admin/issues/157)
The solution I found was to specify this revision:
Well, just figured it out. I had Active Admin installed. It installed
will_paginate
as a dependency.In the latest commits for
Active Admin
,will_paginate
has been replaced withkaminari
.I changed my Gemfile to pull
Active Admin
from github.will_paginate
was removed from my bundle and now everything works. You can do this by putting the following line into your gemfile: