В большом проекте, над которым я работаю, у нас есть много моделей, которые мы хотим проиндексировать и найти. Я обнаруживаю, что повторяю вещи снова и снова ... и знаю, что это может быть плохо позже, когда мы внесем изменения!
Есть ли хороший способ сохранить код СУХИМ при использовании Thinking Sphinx? В частности, у меня есть следующий блок кода в каждой модели, которую я хочу проиндексировать:
define_index do
... # model specific code goes here
set_property :delta => true
has :created_at
end
sphinx_scope(:only_active) do
{ :conditions => { :status => 1 } }
end
Я ожидаю, что этот общий код будет увеличиваться в размере и функциональности по мере развития проекта ... не говоря уже о возможном исправлении ошибок. Поэтому, очевидно, я бы хотел это учесть. Я хотел бы иметь возможность сделать что-то вроде:
define_index_with_common_settings do
... # model specific code goes here
end
И иметь общие индексированные атрибуты, которые будут автоматически включены в индекс ... И иметь общие методы и области поиска, связанные с поиском.
Возможно ли это? Как это делается?