Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
PJAX integration for Rails
Ruby HTML Logos JavaScript
branch: master

README.md

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:

<body>
  <div>
    <!-- This will not be touched on PJAX updates -->
    <%= Time.now %>
  </div>

  <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', 'http://google.com', 'data-skip-pjax' => true %>
  </div>
</body>

Layouts

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
    'pjax'
  end
end
Something went wrong with that request. Please try again.