2011-11-07 8 views
6

मेरे पास दो मॉडल हैं: store और categorycategories.stores नामक एक जॉइनिंग टेबल के साथ।दो मॉडल के बीच सभी एसोसिएशन डेटा को कैसे नष्ट करें? (रेल शुरुआती)

मैं शामिल तालिका में स्टोर ऑब्जेक्ट के लिए सभी रिलेशनशिप डेटा कैसे हटा सकता हूं?

store.categories.destroy या category.stores.destroy

नोट::

मैं इनमें से एक की तरह कुछ का उपयोग कर सके दोनों मॉडलों has_and_belongs_to_many (और इस प्रकार हैं प्रत्येक संघ रिकार्ड के लिए कोई पहचानकर्ता है - केवल store_id और category_id)

उत्तर

6

has_and_belongs_to_many एसोसिएशन में आप या तो delete_all या destroy_all का उपयोग कर सकते हैं।

एक has_many संघ में आप क्योंकि यह :dependent रणनीति (यह डिफ़ॉल्ट रूप से विदेशी कुंजी nullifys) destroy_all जो संबद्ध रिकॉर्ड नष्ट कर देता है के बजाय निम्नलिखित रिकॉर्ड को हटाता है delete_all उपयोग करने पर विचार करना चाहिए।

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#label-Delete+or+destroy%3F

पर अधिक जानकारी
संबंधित मुद्दे