2011-06-19 24 views
5

我使用太陽黑子來生成大量的應用程序索引和概覽。太陽黑子:更新子模型時父模型的強制索引

在這個應用程序中,我有2個模型有父母/孩子一對多的關係。使用太陽黑子我索引父母的孩子數量,因此這可用於排序,範圍等。

但是,當我更改子模型時,父模型不會自動重新索引(因爲它沒有更改) 。通過對孩子的call_back強制parent.save不會強制索引。

於是開始之前,我劈砍而去:

當兒童模特得到改變/添加什麼是強迫在黑子父類的索引行動的最佳方法是什麼?

回答

7

我現在有同樣的問題。在查看API documentation for Sunspot之後,看起來太陽黑子使用方法index()擴展模型,強制實例重新編制索引。

考慮到這一點,它應該只是一個掛鉤到子模型的after_save的回調,重新索引父時,這是存儲到數據庫中的事:

class Parent < ActiveRecord::Base 
    has_many :children 
end 

class Child < ActiveRecord::Base 
    belongs_to :parent 
    after_save :reindex_parent! 

    def reindex_parent! 
    parent.index 
    end 
end