class RESTFramework::ModelOrderingFilter
A filter backend which handles ordering of the recordset.
Public Instance Methods
_get_ordering()
click to toggle source
Convert ordering string to an ordering configuration.
# File lib/rest_framework/filters.rb, line 38 def _get_ordering return nil if @controller.class.ordering_query_param.blank? ordering_fields = @controller.send(:get_ordering_fields) order_string = @controller.params[@controller.class.ordering_query_param] unless order_string.blank? ordering = {} order_string.split(',').each do |field| if field[0] == '-' column = field[1..-1] direction = :desc else column = field direction = :asc end if column.in?(ordering_fields) ordering[column.to_sym] = direction end end return ordering end return nil end
get_filtered_data(data)
click to toggle source
Order data according to the request query parameters.
# File lib/rest_framework/filters.rb, line 64 def get_filtered_data(data) ordering = self._get_ordering reorder = !@controller.send(:ordering_no_reorder) if ordering && !ordering.empty? return data.send(reorder ? :reorder : :order, _get_ordering) end return data end