Как вы проходите через ассоциации, чтобы создать индексы для think_sphinx? - PullRequest
1 голос
/ 22 февраля 2011

Допустим, следующие модели:

class Order < ActiveRecord::Base  
  belongs_to :customer 
  has_many   :line_items, :dependent => :destroy  
  has_many   :tickets, :through => :line_items, :dependent => :destroy  
end  

class Ticket < ActiveRecord::Base
  has_many :items, :dependent => :destroy
  has_many :services, :through => :items
  has_many :line_items
  has_many :orders, :through => :line_items
  belongs_to :technician  
end  

class Technician < ActiveRecord::Base  
  has_many :tickets
  has_many :items, :through => :tickets
  accepts_nested_attributes_for :tickets, :items
end  

Как вы индексируете это в мышлении_сфинксе

Order.tickets.first.technician.name

Я понимаю, что могу сделать

  define_index do
    indexes tickets.technician_name, :as => :technician_name
  end 

, если technician_nameэто столбец в таблице заявок, но это не так.Билетная таблица имеет только внешние ключи.

1 Ответ

1 голос
/ 24 февраля 2011

Согласно документации метода индексов:

http://rdoc.info/github/freelancing-god/thinking-sphinx/master/ThinkingSphinx/Index/Builder#indexes-instance_method

Вы должны иметь возможность перемещаться по таким ассоциациям, как:

 define_index do
     indexes tickets.technician.name, :as => :technician_name
 end 
...