2010-02-03 20 views
5

के लिए माइग्रेशन की उम्मीद है मैं रेल में शुरुआत कर रहा हूं। मैं 2.3.एक्स का उपयोग करता हूँरेल 3: 2.3 शुरुआती

मैंने देखा कि रेल 3 प्री-रिलीज़ है [संपादित करें: अब रिलीज उम्मीदवार में!]। मैं शायद अंततः इसे स्विच करूँगा।

2.3 में सामान्य कोडिंग आदतों क्या हैं, मुझे नहीं लेना चाहिए, ताकि स्विच जितना संभव हो सके उतना आसान हो?

संपादित करें:

मैं अपना होमवर्क किया है और रिलीज़ नोट पढ़ा है। लेकिन वे अब तक स्पष्ट से सबसे महत्वपूर्ण अंक के लिए कर रहे हैं, उदाहरण के लिए:

1,5 नई एपीआई

दोनों रूटर और क्वेरी इंटरफ़ेस महत्वपूर्ण देखा है, परिवर्तन को तोड़ दिया। एक पिछली संगतता परत है जो जगह पर है और 3.1 रिलीज तक समर्थित होगी।

यह मेरे जैसे एक शुरुआत के लिए काफी व्यापक नहीं है। क्या टूट जाएगा? बाद में परेशानी से बचने के लिए मैं 2.3.एक्स में पहले से क्या कर सकता हूं?

+0

क्या आपने जेरेमी मैकनली की पोस्ट पर एक नज़र डाली है जैसा मैंने सुझाव दिया था? मुझे नहीं लगता कि आप इन दिनों रेल 3 में अपग्रेड करने के लिए और अधिक व्यापक मार्गदर्शिकाएं प्राप्त कर सकते हैं। न केवल वह आपको पूरी प्रक्रिया के माध्यम से मार्गदर्शन करता है, उन्होंने संक्रमण को जितना संभव हो सके दर्द रहित बनाने के लिए एक मणि लिखा था। –

+0

मैं समझता हूँ, मिलान, लेकिन विषय माइग्रेट करने का तरीका है, लेकिन कैसे इतना कोड करने के लिए है कि मैं प्रवास के दौरान भी कई समस्याएं आ नहीं है नहीं है। मैं आपके उत्तर और आपके द्वारा दिए गए लिंक के मूल्य को समझता हूं। मैंने सीखा, उदाहरण के लिए, मुझे रूटिंग को सरल रखना चाहिए। यह पहले से ही एक मूल्यवान जानकारी है। अगर मुझे यह जानने की ज़रूरत है, ठीक है। लेकिन शायद अन्य अंक हैं। – glmxndr

उत्तर

12

मेरी निजी कोडिंग की आदतों को देखते हुए (मैं 1.2.x के बाद से रेल उपयोग किया गया है), यहाँ एपीआई की एक सूची है परिवर्तन आपको Rails 3 release notes के अनुसार आशा कर सकते हैं।

खोज (: सभी)

के उपयोग से बचें: के पक्ष में

Model.find(:all) 
Model.find(:first) 
Model.find(:last) 

:

Model.all 
Model.first 
Model.last 

परिसर प्रश्नों

की संरचना से बचें कंप्यूटर अनुप्रयोग नामित क्षेत्रों के पक्ष में लेक्स प्रश्न।

अरेल

रेल 3 ActiveRecord की स्थिति और विकल्पों के साथ निपटने के लिए एक अधिक स्वच्छ दृष्टिकोण प्रदान करता है का अनुमान लगाएं। आप इसे कस्टम नामित स्कोप बनाने की उम्मीद कर सकते हैं।

class Model 
    named_scope :limit, lambda { |value| { :limit => value }} 
end 

# old way 
records = Model.all(:limit => 3) 

# new way 
records = Model.limit(3).all 

# you can also take advantage of lazy evaluation 
records = Model.limit(3) 
# then in your view 
records.each { ... } 

रेल 3 में अपग्रेड करते समय, बस नामित स्कोप परिभाषा छोड़ दें।

स्थिरांक

रेल 2. x में इसी Rails.x तरीकों के पक्ष में निम्नलिखित स्थिरांक का उपयोग, पहले से ही उपलब्ध बचें

  • Rails.root के पक्ष में RAILS_ROOT,
  • Rails.env के पक्ष में RAILS_ENV, और
  • RAILS_DEFAULT_LOGGER Rails.logger के पक्ष में।

विनीत जावास्क्रिप्ट

विनीत जावास्क्रिप्ट के पक्ष में भारी जावास्क्रिप्ट सहायकों से बचें।

रत्न निर्भरता

रखें अपने environment.rb आदेश Bundler करने के लिए आसान बनाने के लिए पलायन में संभव के रूप में साफ। आप रेलवे के बिना using Bundler today माइग्रेशन की भी उम्मीद कर सकते हैं।

+0

वास्तव में अच्छा जवाब। +1 – glmxndr

0

मैं कहूंगा, rails release notes पढ़ें और अपने लिए देखें कि आपके लिए क्या आश्चर्यजनक लगता है। बहुत सारी चीज़ें बदल गईं इसलिए इसे पढ़ना निश्चित रूप से बहुत महत्वपूर्ण है।

3

release notes पर नजर रखने के लिए सबसे महत्वपूर्ण बात है। इसके अलावा जेरेमी मैकनेली में पूरे रेल 3 चीज के बारे में कुछ साफ blog posts है (और माइग्रेशन के साथ आपकी सहायता के लिए अभी gem जारी किया है)।