У меня есть отношения между двумя моделями, Idea
и Iteration
. Каждая идея может иметь много итераций. Модели выглядят так:ThinkingSphinx - Поиск через has_many association
# idea.rb
has_many :iterations, dependent: :destroy
# I also use with: :real_time
after_save ThinkingSphinx::RealTime.callback_for(:idea)
# iteration.rb
belongs_to :idea
after_save ThinkingSphinx::RealTime.callback_for(:idea, [:idea])
Мои индексы для Idea
выглядит следующим образом:
ThinkingSphinx::Index.define :idea, :with => :real_time do
[...]
indexes iterations.title, as: :iteration_titles
indexes iterations.description, as: :iteration_descriptions
has iterations.id, :as => :iteration_ids, type: :integer
[...]
end
И я ищу, как это:
@ideas = @user.ideas.search ThinkingSphinx::Query.escape(params[:search]),
:with => {:team_id => @teams.collect(&:id)},
:page => params[:page],
:per_page => 10,
:order => 'created_at DESC'
В настоящее время в поисках либо Iteration
названии или описании возвращает хиты. И я выполнил:
rake ts:rebuild
rake ts:regenerate
rake ts:index
Я что-то пропустил?