У меня 3 модели:
Статистика (принадлежит_to: элемент)
t.integer :skin_id
t.integer :item_id
t.integer :rating
Элемент (has_many: статистика)
и
Скин (has_many: stats)
Используя Think_sphinx, я хочу создать отдельный индекс для элементов, отсортированных по: рейтингу для конкретного: skin_id
Итак, я пытаюсь:
define_index 'sort_by_rate' do
indexes stats(:rating), :as => :ratings, :sortable => true
end
Но это сгенерирует индекс для всех: skin_id (в модели Stat), а не для конкретного.
Другими словами, мне нужно собрать все предметы, отсортированные по Stat.rating, со Stat.skin_id == 1 (например).
Вот пример SQL:
"SELECT `stats`.* FROM `stats` INNER JOIN `items` ON `items`.`id` = `stats`.`item_id` WHERE `stats`.`skin_id` = 1 ORDER BY rating DESC"
Любые решения очень приветствуются!