2013-02-07 10 views
5

क्या कोई मुझे समझा सकता है कृपया अगली चीज़ों के बीच क्या अंतर है?def self.up क्या करें, def up, self.down def def, मतलब def def?

  1. डीईएफ़ self.up
  2. डीईएफ़ अप
  3. डीईएफ़ self.down
  4. डीईएफ़ नीचे
+2

[यह मदद कर सकता है] (http://guides.rubyonrails.org/v2.3.8/migrations.html)। – Paul

उत्तर

10

self.up और up में कोड होता है जो rake db:migrate करते समय माइग्रेशन द्वारा चलाया जाता है। self.upup का एक पुराना संस्करण है। मुझे यकीन नहीं है कि जब उन्होंने इसे पेश किया लेकिन 3.0 तक, वे self.up का उपयोग कर रहे थे।

self.down और down में कोड होना चाहिए जो up विधियों के प्रभाव को उलट देता है। इसलिए यदि आपने up पर एक टेबल बनाई है, तो आपको उस तालिका को down पर छोड़ना चाहिए। rake db:rollback चलाते समय इन विधियों को बुलाया जाता है।

वास्तव में change नामक माइग्रेशन पर एक नई विधि है जिसका उपयोग आमतौर पर किया जाता है यदि रेल के लिए टेबल बनाने जैसी चीजों के विपरीत यह निर्धारित करना आसान होता है।

+0

सर्वोत्तम स्पष्टीकरण! धन्यवाद! –

3

def self.up एक वर्ग विधि (आप इसे वर्ग के लिए भेज सकते हैं: Klass.up) है, def up एक सामान्य विधि है (आप इसे किसी ऑब्जेक्ट पर भेज सकते हैं)। नीचे के लिए वही।

संबंधित मुद्दे