Module: Croods::Resource::Filters
- Defined in:
- lib/croods/resource/filters.rb
Instance Method Summary collapse
Instance Method Details
#apply_filters(scope, params) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/croods/resource/filters.rb', line 16 def apply_filters(scope, params) filters.each do |attribute| unless model.has_attribute?(attribute.name) attribute.name = "#{attribute.name}_id" end value = params[attribute.name] next unless value scope = scope.where(attribute.name => value) end scope end |
#filter_by(name, optional: nil) ⇒ Object
6 7 8 9 10 |
# File 'lib/croods/resource/filters.rb', line 6 def filter_by(name, optional: nil) filters << Croods::Attribute.new( name, :string, null: optional ) end |
#filters ⇒ Object
12 13 14 |
# File 'lib/croods/resource/filters.rb', line 12 def filters @filters ||= [] end |