2012-07-03 17 views
5

के साथ मॉडल का नाम बदलें मैं सामान्य माइग्रेशन के साथ जानता हूं कि मैं rename_table कर सकता हूं लेकिन मोंगोइड में मुझे बिल्कुल यकीन नहीं है कि कैसे आगे बढ़ना है।mongoid

मेरे सभी मॉडल/रिश्ते/मार्ग/नियंत्रक/आदि सभी का नाम बदल गया है, लेकिन मुझे बस यह जानने की जरूरत है कि डेटा को कैसे स्थानांतरित किया जाए।

यह एक एम्बेडेड एम्बेड_ऑन दस्तावेज़ बीटीडब्ल्यू है।

अद्यतन:

बस कर ऐसा लगता है:

Model.all.each {|m| m.rename :old_embedded_association_name, :new_embedded_association_name } 

काम करता है। ध्वनि सेन?

उत्तर

1

करना चाहिए एम्बेडेड डॉक्स का नाम बदलने के लिए लगता है के आधार पर, आप उन्हें हैं, जैसे आप एक विशेषता का इलाज और कुछ इस तरह का उपयोग कर उनका नाम बदल:

:

ParentModel.all.each {|m| m.rename :old_embedded_association_name, :new_embedded_association_name }

शीर्ष स्तर के मॉडल का नाम बदलने के लिए, आप गहरे लाल रंग का ड्राइवर ही पहुँच सकते हैं और #rename_collection विधि का उपयोग करने की आवश्यकता है

Mongoid.database.rename_collection "old_collection_name", "new_collection_name"

देखने के लिए पुराने संग्रह नाम आप कुछ इस तरह कर सकते हैं:

Mongoid.database.collections.map {|c| c.name}

+1

NoMethodError: Mongoid के लिए अपरिभाषित विधि 'डेटाबेस ': मॉड्यूल – Hackeron

0

जो आपने कहा है और प्रलेखन यह आप इसे इस तरह

Model.rename(:old_name, :new_name) 
1

वहाँ एक संग्रह का नाम बदलने के कुछ तरीके हैं। मुझे मोपेड (https://github.com/mongoid/moped/blob/master/lib/moped/collection.rb#L55) के माध्यम से ऐसा करना पसंद है।

Mongoid.default_session[:old_name].rename(:new_name)

यह भी संग्रह नाम को खोजने के लिए एक आसान है।

OldModel.collection.name