2009-09-22 1 views
1

У меня есть модель:Thinking Sphinx, ассоциации не работают

class Topic < ActiveRecord::Base 

    define_index do 
    indexes title, :sortable => true 
    indexes body 
    indexes tags(:name), :as => :tag_name 
    end 

    has_and_belongs_to_many :tags, :join_table => 'topic_tags', :order => 'tags.name asc' 

end 

Когда я бегу:

rake ts:rebuild

я получаю:

sql_range_query: Unknown column 'topics.name' in 'field list'

И мой «конфигурации/развития. sphinx.conf 'имеет эту нечетность:

sql_query = SELECT `topics`.`id` * 1 + 0 AS `id` , CAST(`topics`.`title` AS CHAR) AS 
`title`, CAST(`topics`.`body` AS CHAR) AS `body`, CAST(`topics`.`name` AS CHAR) AS 
`tag_name`, `topics`.`id` AS `sphinx_internal_id`, 1552019743 AS `class_crc`, '1552019743' 
AS `subclass_crcs`, 0 AS `sphinx_deleted`, IFNULL(`topics`.`title`, '') AS `title_sort` 
FROM `topics` WHERE `topics`.`id` >= $start AND `topics`.`id` <= $end GROUP BY 
`topics`.`id` ORDER BY NULL 
    sql_query_range = SELECT IFNULL(MIN(`id`), 1), IFNULL(MAX(`id`), 1) FROM `topics` 

Так что почему-то ассоциации выглядят бюстом, где я пошла не так и как исправить это?

(рельсы 2.3.4 и последние мышления сфинкс 1.2.11)

ответ

9

Trivial ловушка:

Это работает:

class Topic < ActiveRecord::Base 
    has_and_belongs_to_many :tags, :join_table => 'topic_tags', :order => 'tags.name asc' 

    define_index do 
    indexes title, :sortable => true 
    indexes body 
    indexes tags(:name), :as => :tag_name 
    end 



end 

объединение должно быть определенно до индекса.