---
title: Paginated Squirrel
teaser:
tags: web,rails,squirrel
author: Jon Yurek
published_on: 2007-03-30
---

Latest and greatest…

    001 >> posts = Post.find(:all) do
             updated_on > 1.year.ago
             paginate :page => 4, :per_page => 10
           end
        => [...]
    005 >> posts.total_results
        => 46
    006 >> posts.pages.current
        => 4
    007 >> posts.pages.current_range
        => 31..40
    008 >> posts.pages.next
        => 5
    009 >> posts.pages.previous
        => 3

The new `paginate` squirrel method takes a hash with `:page` (1-indexed) and
`:per_page` (which default to 1 and 20, respectively). When you use it, your
results array is automatically extended with a helpful `pages` method that gives
you all you need to know to paginate your views. It also puts a `total_results`
method on there, so you know how big the whole search is.

And before you ask, yes, I know some of you asked for this to work with
`paginating_find`, and it does. But we found that `paginating_find` was conflicting
with other plugins, leading to some really weird errors. Plus, it'd always been
my intention to add pagination (among other things) anyway.

_**Please Note:**_ The repo has changed. It's now on [github].

[github]: https://github.com/thoughtbot/squirrel
