我有两个模型
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 sunspot 的标题时,不会更新相关用户的索引,并且无法通过新数据进行搜索。如果我这样做
User.index
它解决了问题,但需要太多时间。是否有更好的解决方案来更新子记录更改时的父记录索引(例如重新索引仅父记录而不是所有用户)?
最佳答案
Sunspot 提供实例 index()
方法,用于索引一条记录。
我所做的是
class Post
belongs_to :user
after_save :update_user_index
private
def update_user_index
user.index
end
end
如果您在控制台中运行它,并希望立即查看结果,请调用
Sunspot.commit
关于ruby-on-rails - 用太阳黑子重新索引一个特定的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10453022/