Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Looking at the rails pjax_rails gem https://github.com/rails/pjax_rails I see it automatically patches layout to return false when the request is pjax.

https://github.com/rails/pjax_rails/blob/master/lib/pjax.rb#...

    layout ->(c) { pjax_request? ? false : 'application' }
So in the sample app you pointed out:

    def show
      @post = Post.find(params[:id])

      if pjax_request?
        render layout: false
      else
        respond_to :html
      end
    end
is the same as:

    def show
      @post = Post.find(params[:id])
    end
Also, pjax-rails converts the following selection to pjax:

https://github.com/rails/pjax_rails/blob/master/lib/assets/j...

    $('a:not([data-remote]):not([data-behavior]):not([data-skip-pjax])')
I was a bit baffled by the example app since it didn't appear to be doing any pjaxy stuff, but rails being opinionated, I see all links are pjax(except the not classes show above), and layout is turned off for pjax requests.


I put some debug printouts in his example notes controller and it seemed to be setting the no layout rendering option correctly, but as you say, the checks in the controller may be redundent. Anyway, I am planning on giving pjax a very good look: I find doing a lot of client side coding to be tedious and is something to be minimized.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: