2012-10-31 12 views
5

हमारे आवेदन में हम ActiveRecord विधि को नष्ट ताकि हमारे रिकॉर्ड नष्ट नहीं मिलता अधिरोहित किया है (ताकि उपयोगकर्ता को हटा सकते हैं) के साथ नष्ट कर। इसलिए जैसा:निर्भर ट्रिगर: ओवरराइड को नष्ट-विधि

def destroy 
    self.is_deleted = true 
    self.save 
    freeze 
end 

बहरहाल, यह निष्क्रिय कर दिया है करने के लिए हमारी has_many संबंधों पर निर्भर है को नष्ट लगता है। दूसरे शब्दों में, यदि destroy को मूल ऑब्जेक्ट पर कॉल किया जाता है, तो has_many की बच्चे की वस्तुएं नष्ट नहीं होती हैं (वे हटाई नहीं जाती हैं, यानी, एसक्यूएल 'DELETE...', और न ही destroy-विधि कहा जाता है)।

मैं बच्चे वस्तुओं के विनाश कैसे को गति प्रदान करते हैं।

धन्यवाद!

उत्तर

6

आप कॉलबैक नष्ट को गति प्रदान करने की जरूरत है।

def destroy 
    self.is_deleted = true 
    self.save 
    run_callbacks :destroy 
    freeze 
end 
+0

धन्यवाद! यही कारण है कि मैं वास्तव में क्या याद आ रही थी है। :) –

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