๐ŸŽ‰ BIG NEWS ๐ŸŽ‰  โœฆ  Avo 4 has officially SHIPPED  โœฆ  ๐Ÿš€ the beta is over, 4.0 is here  โœฆ  ๐Ÿ› ๏ธ build admin panels, dashboards & internal tools at light speed  โœฆ  โญ you are visitor #1,136,374  โœฆ  ๐ŸŽŠ tell a friend  โœฆ  best viewed in Ruby on Rails  โœฆ  ๐Ÿ‘‰ click here to see what’s new  โœฆ 

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.