Back to pricing
Gemfile

Dynamic Filters

Add to your plan

Let users instantly find what they need with powerful search and filter combinations. Reduce support tickets and user frustration.

# $30/mo

1 gem "avo-dynamic_filters"

Give the people using your admin a way to cut a crowded Index view down to the handful of records they're after, stacking conditions however they need, without you writing a scope for each one. Mark a field filterable: true and it becomes a filter, auto-mapped to the right control for its type: :text, :number, :date, :boolean, :select, or :tags. Each type carries its own conditions, so text gets contains and starts-with, dates get is-within and on-or-before, and numbers get the full set of comparisons.

Queries run through Ransack, so you whitelist columns with ransackable_attributes and filtering rides on the layer you already trust. Conditions on the same attribute combine with OR, different attributes with AND. When a plain field isn't enough, declare a dynamic_filter with your own label, query lambda, and query_attributes to reach across associations or into JSON columns. It's a gem you add, not a filtering UI you build, secure, and then maintain as your schema grows.

What you get

  • A working filter from a single flag: mark a field filterable: true and the right control for its type is wired up for you, no input to build
  • The conditions people actually reach for, ready out of the box: contains / starts with / is blank on text, is within / on or before on dates, the full comparison set on numbers, plus boolean, select, and tags
  • Confidence that stacked filters mean what users expect: the same attribute combines with OR, different attributes with AND, handled automatically
  • A way to reach the data a checkbox can't, when you need it: declare a dynamic_filter with your own label, query lambda, and query_attributes pointed wherever the value lives
  • Filtering on data that sits a join away, across belongs_to and has_many associations or inside JSON columns, via query_attributes or a custom Ransack query
  • Room to make each filter fit the resource: override its label, icon, type, conditions, suggestions, fetch_values_from, or apply-on-select, and set the button label and always-expanded default once in an initializer

Why it pays off

  • Ship a full filter UI this afternoon by flagging fields, instead of wiring Ransack queries, per-type inputs, and condition dropdowns by hand.
  • Filtering is all edge cases: date ranges, null handling, association joins, OR/AND combination, ransackable whitelisting. Those are solved here, not sitting in your backlog.
  • Hardened across real Avo apps and resources, so it handles the conditions a one-off filter form quietly gets wrong.
  • Every Avo release makes it better: filters keep working and the query layer stays maintained through upgrades, without you patching it yourself.

Recent releases

  • 3.20.3
  • 3.20.2
  • 3.20.1
  • 3.20.0
  • 3.21.0

# included in

# ready to ship?

You ship it this afternoon. We keep it solid for years.