2011-06-19 11 views
5

अपडेट करते समय मूल मॉडल की बल सूचकांक मैं अपने ऐप्स इंडेक्स और अवलोकनों को उत्पन्न करने के लिए सनस्पॉट का उपयोग कर रहा हूं।सनस्पॉट: बाल मॉडल

इस ऐप में मेरे पास 2 मॉडल हैं जिनके माता-पिता/बच्चे को कई रिश्ते हैं। सनस्पॉट I इंडेक्स के साथ माता-पिता के पास संख्या है, इसलिए यह सॉर्टिंग, स्कोपिंग इत्यादि के लिए उपलब्ध है।

हालांकि, जब मैं बाल मॉडल बदलता हूं तो मूल मॉडल स्वचालित रूप से पुनः नहीं मिलता है (जैसा कि यह नहीं बदला गया है) । बच्चे पर कॉल_बैक के माध्यम से parent.save को मजबूर करना इंडेक्स को मजबूर नहीं करता है।

तो इससे पहले कि मैं दूर हैकिंग शुरू:

सबसे अच्छा तरीका क्या Sunspot में माता पिता के वर्ग पर एक सूचकांक कार्रवाई के लिए मजबूर करने के लिए जब एक बच्चे को मॉडल बदल जाती है/जोड़ा हो सकता है?

उत्तर

7

मुझे अभी भी यही समस्या थी। API documentation for Sunspot में देखने के बाद, ऐसा लगता है कि सनस्पॉट एक विधि index() के साथ मॉडलों का विस्तार करता है जो एक उदाहरण को पुन: संशोधित करने के लिए मजबूर करता है।

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 
:

इसे ध्यान में रखते

, यह बच्चे मॉडल की after_save कॉलबैक में hooking, माता पिता पुन: अनुक्रमणिका के लिए जब इस डेटाबेस पर संग्रहीत किया जाता है का मामला होना चाहिए

संबंधित मुद्दे