काम नहीं कर नष्ट चलो कहते हैं कि मैं तीन सक्रिय रिकॉर्ड मॉडल हैं:बहुरूपी निर्भर रेल: सही ढंग से
class Tissue
has_many :boogers, as: :boogerable, dependent: :destroy
end
class Finger
has_many :boogers, as: :boogerable, dependent: :destroy
end
Class Boogers
belongs_to :boogerable, polymorphic: true
end
मान लीजिए कि अपने आवेदन के लिए एक ऊतक के लिए एक उंगली से एक booger हस्तांतरण कर सकते हैं, और एक बार यह हो जाने पर दो, उंगली नष्ट हो गया है (यिक्स!)। किसी कारण से, जब उंगली नष्ट हो जाती है, तो यह उन बूगर्स को भी नष्ट कर रहा है जो पहले से संबंधित थे और तब से ऊतक में स्थानांतरित हो गए थे। लॉग में मैं देख सकता हूं कि जब उंगली नष्ट हो जाती है तो यह उन बूगर्स की आईडी को याद करता है जो इसका उपयोग करते हैं और उन्हें नष्ट कर देते हैं। यह सुनिश्चित करने के लिए जांच नहीं करता है कि boogerable_type अभी भी 'उंगली' है और इस प्रकार प्रकार 'ऊतक' वाले लोगों को नष्ट कर देता है।
जब एक उंगली नष्ट हो जाता है, यह इस कर रही है:
DELETE FROM boogers WHERE booger.id = 387
यह इस जब करना चाहिए:
DELETE FROM boogers WHERE boogerable_id = 1 AND boogerable_type = 'finger'
किसी को भी करने से पहले इस पार चलो?
कृपया हमें वह कोड दिखाएं जहां आप स्थानांतरित कर रहे हैं और नष्ट कर रहे हैं। –
आपका प्रश्न उपयोगी है, यह मेरे लिए काम करता है। –