1. Simple Logic
  2. Blog
  3. Ruby


3Feb 2017

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
belongs_to :customer
has_many :order_products

class OrderProduct < ActiveRecord::Base
belongs_to :order

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.

For eg:
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