RoR – Active Admin Filters on Attributes of Associated Models
In one of our application there was a requirement to have filters on attributes of associated models. We use ActiveAdmin andit provides a nice feature to satisfy this requirement with the help of Ransack(https://github.com/activerecord-hackery/ransack) gem.
Let’s consider following example:
class Order < ActiveRecord::Base
class OrderProduct < ActiveRecord::Base
Now, we need to have a filter for ‘order_date’ field of Order table on OrderProduct index page. And We can simply achieve this with following:
ActiveAdmin.register OrderProduct do
filter :order_order_date, as: :date_range
Also we can have filters for attrbiutes of associations of association as follows.
If we need to have filter for ‘account_code’ field of Customer table which is associated with Order table then we can do folllowing:
filter :order_customer_account_code, as: :string