Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
PJAX integration for Rails
branch: master

PJAX for Rails 3.2+

Build Status

Integrate Chris Wanstrath's PJAX into Rails 3.2+ via the asset pipeline.

To activate, add this to your app/assets/javascripts/application.js (or whatever bundle you use):

//=require jquery.pjax

Then choose all the types of links you want to exhibit PJAX:

// app/assets/javascripts/application.js
$(function() {
  $(document).pjax('a:not([data-remote]):not([data-behavior]):not([data-skip-pjax])', '[data-pjax-container]')

For this example, the PJAX container has to be marked with data-pjax-container attribute, so for example:

    <!-- This will not be touched on PJAX updates -->
    <%= %>

  <div data-pjax-container>
    <!-- PJAX updates will go here -->
    <%= content_tag :h3, 'My site' %>
    <%= link_to 'About me', about_me_path %>
    <!-- The following link will not be pjax'd -->
    <%= link_to 'Google', '', 'data-skip-pjax' => true %>


By default, the pjax_rails gem will not render your application layout file and will instead only return the yielded view. But if you have additional content you want to always be returned with your pjax requests, you can override pjax_layout in your controller and specify a layout to render (by default, it's false)

class ApplicationController < ActionController::Base
  def pjax_layout
Something went wrong with that request. Please try again.