我有两个型号
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
问题是当我更新Post太阳黑子的标题时不会更新相关用户的索引,并且不能通过新数据进行搜索。如果我做User.index
它可以解决问题但需要花费太多时间。是否有更好的解决方案来更新子记录更改的父记录索引(如reindex只是父记录而不是所有用户)?
答案 0 :(得分:10)
Sunspot提供了一个实例index()
方法,用于索引一条记录。
我做的是
class Post
belongs_to :user
after_save :update_user_index
private
def update_user_index
user.index
end
end
如果您在控制台中运行此功能,并希望立即查看结果,请致电Sunspot.commit