Minidusen lets you find text in associated records.
Assume the following model where a Contact record may be associated with a Group record:
class Contact < ApplicationRecord
  belongs_to :group
  validates_presence_of :name, :street, :city, :email
end
class Group < ApplicationRecord
  has_many :contacts
  validates_presence_of :name
end
We can filter contacts by their group name by joining the groups table and filtering on a joined column.
Note how the joined column is qualified as groups.name (rather than just name):
class ContactFilter
  include Minidusen::Filter
  filter :text do |scope, phrases|
    columns = [:name, :email, 'groups.name']
    scope.joins(:group).where_like(columns => phrases)
  end
end
Posted by Henning Koch to makandra dev (2020-11-16 15:59)