Sha256: 72d9c2960ba2c38392bd9e2fff88df10e31220c741c45366b1a43a9ec02e09fd
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
module DataTable module ActiveRecord module ClassMethods def _find_objects params, fields, search_fields self.where(_where_conditions params[:sSearch], search_fields). includes(_discover_joins fields). order(_order_fields params, fields). paginate :page => _page(params), :per_page => _per_page(params) end def _discover_joins fields joins = Set.new fields.each { |it| field = it.split('.') if (field.size == 2) then joins.add field[0].singularize.to_sym end } joins.collect end def _where_conditions query, search_fields return if query.blank? [search_fields.map {|field| ["UPPER(#{field}) LIKE ?"] }.join(" OR "), *(["%#{query.upcase}%"] * search_fields.size)] end def _order_fields params, fields direction = params[:sSortDir_0] == "asc" ? "ASC" : "DESC" %{#{fields[params[:iSortCol_0].to_i]} #{direction}} end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
data_table-0.1.9 | lib/data_table/active_record.rb |