Sha256: b07e8cd4cc095dc0ffb6f1779ed58cc1b573ff82f8a7925423bfe59f365e9a01

Contents?: true

Size: 737 Bytes

Versions: 2

Compression:

Stored size: 737 Bytes

Contents

module DataTable
  module ActiveRecord
    module ClassMethods
      def _find_objects params, fields, search_fields
        self.where(_where_conditions params[:sSearch], search_fields).
             order(_order_fields params, fields).
             paginate :page => _page(params), :per_page => _per_page(params)
      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

2 entries across 2 versions & 1 rubygems

Version Path
data_table-0.1.8 lib/data_table/active_record.rb
data_table-0.1.7 lib/data_table/active_record.rb