Rails plugin for using will_paginate with liquid templating
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Will Paginate Liquidized


This fork updates the will_paginate-liquidized plugin to work with WillPaginate 3.0.


Changes to the original:

  • the liquid method has been renamed to will_paginate from will_paginate_liquid.

Ongoing issues with this project include:

  • currently has only been tested within my own project running Rails 3.0.3. needs further testing on 2.2.x and 2.3.×.

Setup / Using


What do you need?


Rails 2:

script/plugin install https://github.com/tronfu/will_paginate-liquidized.git

Rails 3:

rails plugin install https://github.com/tronfu/will_paginate-liquidized.git


In your controller you might have something like this;

  class MoviesController < ApplicationController
    # GET /movies
    # GET /movies.xml
    def index
      @movies = Movie.all.paginate(:page => params[:page], :per_page => 10)
      respond_to do |format|
        format.html # index.html.erb
        format.xml  { render :xml => @movies }

In your view put something like this in movies/index.html.erb;

  <%= Liquid::Template.parse("{{ movies | will_paginate }}").render({'movies' => @movies}, :registers => {:controller => @controller}) %>  

NOTE: you must remember to pass the current controller in rendering (:registers). If anyone can think of a way around this let me know.

You won’t get any pagination links until you exceed 10 (per_page setting defined in controller action). You can also pass the following other optional arguments to the will_paginate_liquid method.

  {{ movies | will_paginate : 'anchor', 'prev_label', 'next_label' }}
  anchor: apply a #anchor to all generated urls in the pagination
  prev_label: label for the previous page button
  next_label: label for the next page button

What does the code do?

Registers a new filter tag for Liquid to access will_paginate using a custom LinkRenderer so it can reference the @controller from the current liquid context[:registers]. Uses ActionView::Helpers::UrlHelper, ActionView::Helpers::TagHelper for constructing the pagination links.


Who’s who?

Get out clause

Right now this script is provided without warranty, or support from the author.

Creative Commons License

Creative Commons License

Will Paginate Liquidized by Matthew Hutchinson is licensed under a Creative Commons Attribution 2.0 UK: England & Wales License.