livelist-rails
a Rails extension incorporating livelist.js
General Setup
in your Gemfile:
gem 'livelist-rails', '0.0.3'
then:
bundle install
setup livelist for a resource, ex: users
javascript setup
app/assets/javascripts/users.js.coffee
$(document).ready ->
list = new LiveList(
global:
resourceName: 'users'
resourceNameSingular: 'user'
list:
renderTo: 'ul#users'
listItemTemplate: '<li>{{first_name}} {{last_name}} ({{status}})</li>'
filters:
renderTo: 'div#filters'
pagination:
renderTo: 'div#pagination'
)
Rails 3.1 - Asset Pipeline
app/assets/javascripts/application.js (manifest file)
//= require livelist-rails
//= require users
app/views/layouts/application.html.erb
<%= javascript_include_tag 'application' %>
Rails 3.0
app/views/layouts/application.html.erb
if you are not already including mustache.js and underscore.min.js in your application layout, add the following:
<%= javascript_include_tag :livelist_dependencies %>
to include livelist.js or livelist.min.js (depending on your environment) add the following:
<%= javascript_include_tag :livelist %>
controller setup
app/controllers/users_controller.rb
def index
@users = User.filter(params[:filters])
@filters = User.filters_as_json(params[:filters])
end
JSON template setup
RABL
app/views/users/index.json.rabl
object false
node :pagination do
@pagination
end
node :filters do
@filters
end
child(@users) do
extends('users/user')
end
app/views/users/user.json.rabl
object @user
attributes :first_name, :last_name, :status
model setup
class User < ActiveRecord::Base
filters :status
end