lib/data_tables.rb in data_tables-0.1.16 vs lib/data_tables.rb in data_tables-0.1.17

- old
+ new

@@ -44,10 +44,11 @@ scope = options[:scope] || :domain named_scope = options[:named_scope] named_scope_args = options[:named_scope_args] except = options[:except] || [] es_block = options[:es_block] + order_sort = options[:order_sort] # # ------- Ohm ----------- # # if modelCls < Ohm::Model @@ -302,17 +303,23 @@ total_records = modelCls.count :conditions => init_conditions.join(" AND ") total_display_records = modelCls.count :conditions => conditions.join(" AND ") end sort_column = params[:iSortCol_0].to_i current_page = (params[:iDisplayStart].to_i/params[:iDisplayLength].to_i rescue 0)+1 + order = if order_sort.respond_to?(:call) + order_sort.call(columns[sort_column][:name], params[:sSortDir_0]) + else + "#{columns[sort_column][:name]} #{params[:sSortDir_0]}" + end + if named_scope objects = modelCls.send(named_scope, *args).paginate(:page => current_page, - :order => "#{columns[sort_column][:name]} #{params[:sSortDir_0]}", + :order => order, :conditions => conditions.join(" AND "), :per_page => params[:iDisplayLength]) else objects = modelCls.paginate(:page => current_page, - :order => "#{columns[sort_column][:name]} #{params[:sSortDir_0]}", + :order => order, :conditions => conditions.join(" AND "), :per_page => params[:iDisplayLength]) end #logger.info("------conditions is #{conditions}") data = objects.collect do |instance|