Question

I am trying to use the will_paginate gem to paginate my blog posts, i am also using Sinatra and Sequel for the blog. I receive an error stating

"undefined method `paginate'"

And I have tried everything to make it work, but it's always the same error.

page = params.fetch "page", 1
per_page = params.fetch "per_page", 3
@posts = Post.order(:id).paginate(page.to_i,per_page.to_i)

or

@posts = Post.paginate(:page => params[:page])

Both produce the same error no matter which query I provide.

Is there any way to make this work, or is there any other way so I could paginate my posts using Sequel and Sinatra?

Was it helpful?

Solution

Not specifically Sequel-related, but you can paginate any collection (even those will_paginate doesn't integrate with by default) using this:

require 'will_paginate/collection'
paged_collection =
  WillPaginate::Collection.create(page, per_page, total_count) do |pager|
    pager.replace(collection)
  end

EDIT:

Try this:

require 'will_paginate'
require 'will_paginate/sequel'
require 'sequel/extensions/pagination'

page = params.fetch "page", 1
per_page = params.fetch "per_page", 3
@posts = Post.order(:id).extension(:pagination).paginate(page.to_i,per_page.to_i)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top