Sunspot / Solr / Rails: Ассоциации моделей не обновляются в индексе

У меня есть модель Fieldnote в моем приложении, которая has_many: activity прикреплена к ней через таблицу с именем: fieldnote_activities. Затем я определяю индекс с возможностью поиска следующим образом:

searchable :auto_index => true, :auto_remove => true do
  integer :id
  integer :user_id, :references => User

  integer :activity_ids, :multiple => true do
    activities.map(&:id)
  end

  text :observations
 end

И затем у меня есть модель поиска для хранения / обновления результатов поиска. Таким образом, модель поиска также имеет свои собственные связи с действиями. Затем я выполняю свой поиск следующим образом:

@search = Search.find(params[:id])
@query  = Fieldnote.search do |query|
  query.keywords  @search.terms

  if @search.activities.map(&:id).empty? == false
    query.with    :activity_ids, @search.activities.map(&:id)
  end

end
@fieldnotes = @query.results

Теперь все работает ОТЛИЧНО. Проблема в том, что если я изменяю, какие действия, связанные с полевой заметкой, результаты поиска не меняются, потому что, похоже, индексы для этой полевой заметки не меняются. У меня создалось впечатление, что флаги: auto_index => true и: auto_remove => true, когда я определяю индекс с возможностью поиска, будут отслеживать новые ассоциации (или удаленные ассоциации), но, похоже, это не так. Как мне это исправить?

5
задан landslide 15 November 2011 в 15:14
поделиться