Class: RailsApiModel::Filters::Field
- Inherits:
-
BaseFilter
- Object
- BaseFilter
- RailsApiModel::Filters::Field
- Defined in:
- lib/rails_api_model/filters/field.rb
Overview
TODO: Check whether the ActiveRecord model has the specified field
Instance Attribute Summary
Attributes inherited from BaseFilter
Instance Method Summary collapse
Methods inherited from BaseFilter
Constructor Details
This class inherits a constructor from RailsApiModel::Filters::BaseFilter
Instance Method Details
#apply_scope(relation, key, value) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/rails_api_model/filters/field.rb', line 5 def apply_scope(relation, key, value) key, modifier = key.split(':'.freeze, 2) value = transform_type(value) column = activerecord_model.arel_table[key] relation.where case modifier when nil then column.eq(value) when 'not'.freeze then column.not_eq(value) when 'lt'.freeze then column.lt(value) when 'lte'.freeze then column.lteq(value) when 'gt'.freeze then column.gt(value) when 'gte'.freeze then column.gteq(value) # TODO: Handle this error via Rails and send 400 else raise FilterError.new("Invalid modifier #{modifier}") end end |