class RESTFramework::ModelSearchFilter
Multi-field text searching on models.
Public Instance Methods
get_filtered_data(data)
click to toggle source
Filter data according to the request query parameters.
# File lib/rest_framework/filters.rb, line 80 def get_filtered_data(data) fields = @controller.send(:get_search_fields) search = @controller.request.query_parameters[@controller.send(:search_query_param)] # Ensure we use array conditions to prevent SQL injection. unless search.blank? return data.where(fields.map { |f| "CAST(#{f} AS CHAR) #{@controller.send(:search_ilike) ? "ILIKE" : "LIKE"} ?" }.join(' OR '), *(["%#{search}%"] * fields.length)) end return data end