Module: DataTable::ClassMethods

Defined in:
lib/data_table/base.rb

Instance Method Summary collapse

Instance Method Details

#for_data_table(controller, fields, search_fields = nil, explicit_block = nil, &implicit_block) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/data_table/base.rb', line 9

def for_data_table controller, fields, search_fields=nil, explicit_block=nil, &implicit_block
  params = Hash[*controller.params.map {|key, value| [key.to_s.downcase.to_sym, value] }.flatten]
  search_fields ||= fields
  block = (explicit_block or implicit_block)

  objects = _find_objects params, fields, search_fields
  matching_count = objects.respond_to?(:total_entries) ? objects.total_entries : _matching_count(params, search_fields)

  {:sEcho                => params[:secho].to_i,
   :iTotalRecords        => self.count,
   :iTotalDisplayRecords => matching_count,
   :aaData               => _yield_and_render_array(controller, objects, block)
  }.to_json.html_safe
end