Для начала, производственная сторона вещей работает очень хорошо, только когда я запускаю тесты, которые возникают в результате ошибок.Тестирование мышления Сфинкса с act_as_taggable_on Запрос на ошибочные имена таблиц
Как указано в названии, я использую Thinking Sphinx с эффектом act_as_taggle. Вот некоторые фрагменты из модели, которые я использую:
class Special < ActiveRecord::Base
acts_as_taggable
acts_as_taggable_on :cuisines, :meals
...
define_index do
...
indexes cuisine_taggings.tag(:name), :as => :cuisine_tags, :facet => true
indexes meal_taggings.tag(:name), :as => :meal_tags
...
end
...
end
поиска выглядит примерно так:
Special.search("some query", {
:conditions => {:meal_tags => "dinner"} ,
:geo => coordinates,
:retry_stale => true,
:with => {
"@geodist" => 0.0..distance,
:timeframe => [1,2],
},
:page => page,
:per_page => Kaminari.config.default_per_page,
:order => "#{day} desc, @relevance DESC, @geodist ASC"
}
Ошибки я вижу это являются:
Mysql2::Error: Unknown column 'cuisine_taggings_specials.context' in 'where clause': SELECT `taggings`.`id` AS t0_r0, `taggings`.`tag_id` AS t0_r1, `taggings`.`taggable_id` AS t0_r2, `taggings`.`taggable_type` AS t0_r3, `taggings`.`tagger_id` AS t0_r4, `taggings`.`tagger_type` AS t0_r5, `taggings`.`context` AS t0_r6, `taggings`.`created_at` AS t0_r7, `tags`.`id` AS t1_r0, `tags`.`name` AS t1_r1 FROM `taggings` LEFT OUTER JOIN `tags` ON `tags`.`id` = `taggings`.`tag_id` WHERE `taggings`.`taggable_id` = 1 AND `taggings`.`taggable_type` = 'Special' AND (`cuisine_taggings_specials`.context = 'cuisines')
Как вам можно увидеть, что запрос пытается найти таблицу «kitchen_taggings_specials» вместо таблицы тегов.
Я перестраиваю индексы как в dev, так и при каждом изменении индекса.
Как я уже сказал, производственные и опытно-конструкторские работы просто прекрасны, только когда я выполняю свои тесты.
Какие версии TS и Rails вы используете? – pat
Мышление Sphinx: 2.0.5, Rails 3.2.1, Sphinx 2.0.3. Эта проблема существовала и в Rails 3.1.x – samullen
Можете ли вы попробовать TS 2.0.11? В версии 2.0.8 были зафиксированы некоторые исправления для действий-как-taggable-on. – pat