I want to filtering search by age groups.
Now I have: program.rb
class Program < ActiveRecord::Base
  has_many :age_groups, through: :programs_age_groups_relations
  include Tire::Model::Search
  include Tire::Model::Callbacks
  mapping do
    indexes :name, analyzer: 'snowball', boost: 100
    indexes :description, analyzer: 'snowball'
    indexes :age_groups do
      indexes :name, analyzer: 'snowball'
    end
  end
  def to_indexed_json
    to_json(include: {age_groups: {only: :name}})
  end
  def self.search(params, options={})
    tire.search(load: {include: 'age_groups'}) do
      query do
        boolean do
          must { string params[:name_query] } if params[:name_query].present?
        end
      end
    filter do
      boolean do
        if params[:age_groups].present?
          params[:age_groups].each do |ag_name|
            must { string ag_name }
          end
        end
      end
    end
  end
end
index.html.haml
= form_tag programs_path, method: :get do |f|
  = text_field_tag :name_query, params[:name_query]
  - AgeGroup.all.each do |ag|
    = check_box_tag 'age_groups[]', ag.name, params[:age_groups].include?(ag.name)
in controller:
@programs = Program.search(params)
Age Groups:
AgeGroup.create([{name: 'Baby'}, {name: 'Toddler'}, {name: 'Preschoolers'}, {name: 'Elementary'}, {name: 'Middle School'}])
Realtion:
class ProgramsAgeGroupsRelation < ActiveRecord::Base
  attr_accessible :age_group_id, :program_id
  belongs_to :age_group
  belongs_to :program
end
When I check one or more age_groups in search form nothing was happened with search result.
How can I correctly use tire for this task?