में सभी को हटाएं मेरे पास उपयोगकर्ता के लिए user has_many agents
और agent belongs_to user
के रूप में एक सहयोग है। रेल कंसोल में, मैं किसी विशेष परिदृश्य का परीक्षण करने के लिए विभिन्न उपयोगकर्ताओं का उपयोग करने की कोशिश कर रहा हूं और मैं कोई एजेंट नहीं चाहता हूं, इसलिए मैं user.agents
को हटाना चाहता हूं। मैंने user.agents.map(&:destroy)
की कोशिश की, लेकिन यह ActiveRecord::StaleObjectError: Attempted to delete a stale object
के रूप में त्रुटि देता है। मैंने user.agents.delete_all
भी कोशिश की है, लेकिन यह भी काम नहीं करता है। मैं रेल कंसोल में एक ही कमांड वाले उपयोगकर्ता एजेंटों को हटा देता हूं।रेल कंसोल
उत्तर
बेहतर होगा कि तुम का उपयोग destroy
क्योंकि यह सभी रेल जादू (कॉलबैक और इस तरह)
user.destroy #For a single record
user.agents.destroy_all #For a collection
ActiveRecord::StaleObjectError
Optimistic locking के लिए है के माध्यम से चला जाता है, फिर से हटाने का प्रयास करने से पहले किसी भी ताले आप उस पर है हटा दें। जांचें कि कोई और सिस्टम का उपयोग कर रहा है या आपके द्वारा खोले गए किसी भी फॉर्म को सबमिट कर रहा है या नहीं।
आप .destroy_all
विधि की तलाश में हैं। यह किसी दिए गए संग्रह के सभी रिकॉर्ड नष्ट कर देता है। तो user.agents.destroy_all
, user.agents
के लिए एक खाली सरणी वापस कर देगा।
आप .delete_all
का उपयोग नहीं कर सके क्योंकि यह एक क्लास विधि है और यह किसी दिए गए शर्त से मेल खाने वाले रिकॉर्ड हटा देता है। इस तरह, Agent.delete_all(condition)
। यदि किसी शर्त के बिना उपयोग किया जाता है तो यह मिलान किए गए तालिका से सभी रिकॉर्ड हटा देता है।
ध्यान रखें कि .destroy
विधियां उदाहरण विधियां हैं। वे किसी ऑब्जेक्ट को तुरंत चालू करते हैं और इसे मिटाने से पहले कॉलबैक करते हैं। .delete
विधियां कक्षा विधियां हैं और वे सीधे किसी वस्तु को मिटा देते हैं।
यह मैं
user.agents.find_each(&:destroy)
- 1. रेल 3 irb कंसोल बनाम रेल कंसोल?
- 2. रेल कंसोल
- 3. रेल कंसोल
- 4. रेल कंसोल
- 5. रेल कंसोल के साथ कंसोल?
- 6. रेल "स्क्रिप्ट/कंसोल" बनाम "स्क्रिप्ट/कंसोल --sandbox"
- 7. उत्पादन रेल कंसोल
- 8. रेल कंसोल डिफ़ॉल्ट वातावरण
- 9. रेल कंसोल और पॉव
- 10. रूबी: कक्षा.न्यू रेल कंसोल
- 11. रेल 3 सैंडबॉक्स कंसोल
- 12. रेल 4 कंसोल
- 13. रेल कंसोल को लिखें
- 14. वहाँ रेल कंसोल
- 15. रेल कंसोल गतिशील है?
- 16. जब मैं रेल कंसोल
- 17. रेल कंसोल से ईमेल भेजें
- 18. रेल कंसोल टिप्स, चाल और अनुकूलन
- 19. स्क्रिप्ट/कंसोल दुर्घटनाओं रेल जब मैं ReadLine
- 20. रेल कंसोल स्टार्टअप पर रन कमांड
- 21. रेल कंसोल के साथ उपयोगकर्ताओं को हटाने
- 22. क्यों मेरी रेल कंसोल (फोरमैन, देव env)
- 23. रेल कंसोल से डाटाबेस आईडी संशोधित करना?
- 24. "बंडल इंस्टॉल" एक रेल कंसोल सिस्टम कमांड
- 25. वसंत के साथ रेल 4 कंसोल लॉक
- 26. रेल कंसोल - कोड का एक ब्लॉक चलाएं
- 27. रेल कंसोल लोड हो रहा है नहीं
- 28. उत्पादन में रेल कंसोल चल रहा है
- 29. रेल 4: कंसोल से सरल वाइल्डकार्ड खोज
- 30. रेल 5 कंसोल को मैकोज़ सिएरा
मैं 'नष्ट करने के लिए user.agents' चाहता हूँ और मैं' user.agents.destroy कोशिश की, लेकिन यह मुझे त्रुटि देता है के लिए काम करता है। –
या तो 'user.destroy' या तो' user.agents.destroy_all' है। एक रिकॉर्ड पर पहला एक अधिनियम, संग्रह पर दूसरा एक अधिनियम – Benj