मैं एक तालिका से रिकॉर्ड हटाने के लिए सबसे अच्छा तरीका ढूंढ रहा हूं। उदाहरण के लिए, मेरे पास एक उपयोगकर्ता है जिसकी उपयोगकर्ता आईडी कई तालिकाओं में है। मैं इस उपयोगकर्ता और हर रिकॉर्ड को हटाना चाहता हूं जिसमें सभी तालिकाओं में उसकी आईडी है।
u = User.find_by_name('JohnBoy')
u.usage_indexes.destroy_all
u.sources.destroy_all
u.user_stats.destroy_all
u.delete
यह काम करता है और सभी तालिकाओं से उपयोगकर्ता के सभी संदर्भों को हटा देता है, लेकिन मैंने सुना है कि destroy_allबहुत प्रक्रिया भारी थी, इसलिए मैंने कोशिश की delete_all। यह केवल उपयोगकर्ता को अपनी स्वयं की उपयोगकर्ता तालिका से हटाता है और idअन्य सभी तालिकाओं से शून्य बना दिया जाता है, लेकिन उनमें रिकॉर्ड को बरकरार रखता है। क्या कोई इस तरह के कार्य को करने के लिए सही प्रक्रिया को साझा कर सकता है?
मैं देखता हूं कि सभी संबद्ध वस्तुओं पर फ़ंक्शन destroy_allकॉल करता है destroyलेकिन मैं सही दृष्टिकोण की पुष्टि करना चाहता हूं।
delete_all, और 2)destroy_allसभी रिकॉर्ड्स को इंस्टैंट करता है और एक बार में उन्हें नष्ट कर देता है, इसलिए बहुत बड़े डेटासेट के साथ, यह दर्दनाक रूप से धीमा हो सकता है।