Skip to content
PJAX integration for Rails
Ruby HTML Logos JavaScript
Find file
Latest commit 755a1ba Mar 18, 2016 @route route Merge pull request #81 from navied/master
Changes from before_filter to before_action
Failed to load latest commit information.
.travis.yml Fix travis build Dec 23, 2013
pjax_rails.gemspec Updated gemspec. Apr 2, 2015

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.