Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Makes it easy to ship data to a jQuery DataTable from ActiveRecord or Mongoid.
Ruby

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
Gemfile
Gemfile.lock
LICENSE
README.rdoc
Rakefile
TODO
data_table.gemspec

README.rdoc

Data Table

Makes it easy to ship data to a jQuery DataTable from ActiveRecord or Mongoid.

Quick example:

in your javascript:

$(".providers-data-table").dataTable({"bJQueryUI"       : true,
                                      "bProcessing"     : true,
                                      "bAutoWidth"      : false,
                                      "sPaginationType" : "full_numbers",
                                      "aoColumns"       : [{"sType" : "html"}, null, null, null, null],
                                      "aaSorting"       : [[0, 'asc'], [1, 'asc']],
                                      "bServerSide"     : true,
                                      "sAjaxSource"     : "/providers.json" }).fnSetFilteringDelay();

Note: the fnSetFilteringDelay() call isn't required but highly recommended: datatables.net/plug-ins/api#fnSetFilteringDelay

in your controller:

class ProvidersController < ApplicationController

  def index
    respond_to do |wants|
      wants.html
      wants.json do
        render(:json => Provider.for_data_table(self, %w(name fein categories.name county state), %w(name fein)) do |provider|
          ["<%= link_to(provider, provider) %>", provider.fein, provider.category.name, provider.county, provider.state]
        end)
      end
    end
  end

end

in your view (assuming HAML):

%table.providers-data-table
  %thead
    %tr
      %th Name
      %th FEIN
      %th Category
      %th County
      %th State

  %tbody

Advanced Features

Date fields

In order to handle date fields properly, enclose the field name in an array along with a hash like so:

Provider.for_data_table(self, %w(name fein opened_on), ["name", "fein", ["opened_on", {:date => true}]]) { ... }

Split fields

To handle split fields, that is to handle searching for “x-y”, add a hash with a split key:

Provider.for_data_table(self, %w(name fein suffix), ["name", ["fein", "suffix", {:split => "-"}]]) { ... }

Copyright

Copyright © 2010-2011 Jason Dew. See LICENSE for details.

Something went wrong with that request. Please try again.