1. Simple Logic
  2. Blog
  3. Ruby on Rails

Ruby on Rails

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
end

class OrderProduct < ActiveRecord::Base
belongs_to :order
end

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
end

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

Simple Logic IT Private Ltd.
609,Damji Shamji Corporate Square, Melville Estate, Next to KBC, Ghatkopar Andheri Link Road, Ghatkopar (E), Mumbai - 400 075.
Mo: +91 8291708207
Email: enquiry@simplelogic.in