/ljax_rails

render :partial lazy-loader for Rails

Primary LanguageRubyMIT LicenseMIT

LJAX

Lazy-load AJAX on Rails

Installation

Bundle ljax_rails gem:

gem 'ljax_rails'

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

//=require ljax_rails

Usage

Views

Add remote: true option to your render :partial call, then the partial will be lazily rendered in a separate HTTP request.

<%= render 'users', remote: true %>

Also, you can give remote_url option for specifying request target URL.

<%= render 'sidebar', remote: true, remote_url: '/shared/sidebar' %>

Controllers

request.ljax? tells you whether the request was sent via LJAX or not.

def index
  if request.ljax?
    @users = User.all
  end
end

TODO

  • JS error handling
  • JS event hook
  • spinner?
  • tests
  • documentation
  • tutorial

Contributing

Send me your PRs!