5

私は2つのモデルを持っています

class User < ActiveRecord::Base
  has_many :posts

  searchable do
    text :post_titles
  end

  def post_titles
    posts.map &:title
  end
end

class Post < ActiveRecord::Base
  belongs_to :user
end

問題は、投稿のタイトルを更新すると、太陽黒点が関連するユーザーのインデックスを更新せず、新しいデータで検索できないことです。そうすればUser.index問題は解決しますが、時間がかかりすぎます。子レコードの変更時に親レコードのインデックスを更新するためのより良い解決策はありますか (すべてのユーザーではなく親レコードのみを再インデックス化するなど)?

4

1 に答える 1

11

Sunspot は、index()1 つのレコードをインデックス化するためのインスタンス メソッドを提供します。

私がしたことは

 class Post 

   belongs_to :user
   after_save :update_user_index

 private

   def update_user_index
     user.index
   end
end

これをコンソールで実行していて、すぐに結果を確認したい場合は、Sunspot.commit

于 2012-05-04T17:11:33.113 に答える