Skip to content
pjax for rails and rack applications
Branch: master
Clone or download
Latest commit df8dca4 Mar 24, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
gemfiles Test both Rack 1.x and 2.0 Apr 16, 2017
lib v1.1.0 Mar 24, 2019
spec Handle frozen body string Feb 28, 2019
.gitignore Test both Rack 1.x and 2.0 Apr 16, 2017
Appraisals Test both Rack 1.x and 2.0 Apr 16, 2017
Gemfile Test both Rack 1.x and 2.0 Apr 16, 2017
Rakefile added specs Nov 1, 2011
rack-pjax.gemspec Add license to gemspec Jul 31, 2017

Rack-pjax travis

Rack-pjax is middleware that lets you serve 'chrome-less' pages in respond to pjax-requests.

It does this by stripping the generated body; only the title and inner-html of the pjax-container are sent to the client.

While this won't save you any time rendering the page, it gives you more flexibility where and how to define the pjax-container. Ryan Bates featured rack-pjax on Railscasts and explains how this gem compares to pjax_rails.



Check out the Railscasts' notes how to integrate rack-pjax in your Rails 3.1 application.

You can find the source from the screencast over here.

Another sample-app: the original pjax-demo but with rack-pjax onboard can be found in the sample-app branch.

The more generic installation comes down to:

I. Add the gem to your Gemfile

# Gemfile
gem "rack-pjax"

II. Include rack-pjax as middleware to your application(-stack)

require ::File.expand_path('../config/environment',  __FILE__)
use Rack::Pjax
run RackApp::Application

III. Install jquery-pjax. Make sure to add the 'data-pjax-container'-attribute to the container.

  <script src="/javascripts/jquery.js"></script>
  <script src="/javascripts/jquery.pjax.js"></script>
  <script type="text/javascript">
      $(document).pjax('a', '[data-pjax-container]')
  <div data-pjax-container>

(For more see the docs of jquery-pjax.)

IV. Fire up your pushState-enabled browser and enjoy!


  • Nokogiri


The contributors.

You can’t perform that action at this time.