रेल 4.2 का पहला बीटा पिछले हफ्ते घोषित किया गया था, और यह पहले से ही अद्भुत लग रहा है। मैं अपने स्वयं के ऐप्स में ActiveJob, वेब कंसोल, पर्याप्त रिकॉर्ड और विदेशी कुंजी समर्थन का उपयोग करने के लिए वास्तव में उत्साहित हूं।
लेकिन रेल की सुंदरता विवरण में है। और यदि आप थोड़ी सी खुदाई करते हैं, तो आपको कुछ कम विज्ञापित सुविधाएं मिलेंगी जो रेल के साथ आपके दैनिक कार्य को पूरी तरह से बेहतर बना देंगी।
कॉन्फ़िगरेशन फ़ाइलें आसानी से लोड करें
ठीक है, मैं पक्षपाती हो सकता हूं। लेकिन कॉन्फिग फाइलों को लोड करने के लिए बिल्ट-इन तरीका कमाल का होने वाला है।
config_for , Rails 4.2 में नया, ठीक वैसे ही काम करता है जैसे आप उम्मीद करते हैं:
development:
host: localhost
port: 6379
test:
host: localhost
port: 6379
production:
host: redis-production
port: 6379
irb(main):001:0> Rails.application.config_for(:redis)
=> {"host"=>"localhost", "port"=>6379}
यानी, अगर आप config_for(:redis) . को कॉल करते हैं , यह config/redis.yml को खोजेगा अपने रेल ऐप में, इसे पार्स करें, और आपके RAILS_ENV के लिए सही कॉन्फ़िगरेशन लौटाएं ।
यह आपको अपने यमल में ERB डालने की सुविधा भी देता है:
development:
host: localhost
port: <%= ENV['REDIS_PORT'] %>
test:
host: localhost
port: <%= ENV['REDIS_PORT'] %>
production:
host: redis-production
port: <%= ENV['REDIS_PORT'] %>
$ REDIS_PORT=6380 bin/rails c
Loading development environment (Rails 4.2.0.beta1)
irb(main):001:0> Rails.application.config_for(:redis)
=> {"host"=>"localhost", "port"=>6380}
अगर आप अपने ऐप में बहुत सारी सेवाओं को कॉन्फ़िगर करते हैं, तो इससे आपके इनिशियलाइज़र्स को पढ़ने में बहुत आसानी होगी।
अपने ऐप्स को बूटस्ट्रैप करना
इससे पहले कि आप उन्हें आज़मा सकें, अधिकांश रेल ऐप्स के लिए आपको कुछ कमांड चलाने की आवश्यकता होती है। यहां तक कि अधिकतर-खाली रेल ऐप्स को अभी भी बूट होने से पहले डेटाबेस को सेट करने की आवश्यकता है।
इसलिए, रेल ने एक बार फिर कॉन्फ़िगरेशन पर कन्वेंशन के साथ जा रहे हैं, विशेष रूप से आपके सेटअप कोड के लिए एक जगह बनाई है:bin/setup ।
डिफ़ॉल्ट अच्छा है। लेकिन bin/setup अपना ऐप शुरू करने के लिए आपको कोई अन्य कोड डालने का भी स्थान है।
तो अब जबकि यह परंपरा है, यदि आप पहले से ही अपने ऐप के लिए बूटस्ट्रैप स्क्रिप्ट लिख चुके हैं, तो उसका नाम बदलकर bin/setup कर दें। , ताकि आपके ऐप्स का उपयोग करने वाले लोग आसानी से आरंभ कर सकें।
bin/setup जब आप नए रेल ऐप्स जेनरेट करते हैं तो आपको एक कम निर्णय लेने की सुविधा मिलती है। और एक बार जब आप bin/setup running चलाने की आदत डाल लें आपके बाद git pull , आपको rake db:setup run चलाने के लिए कभी भी याद नहीं रखना पड़ेगा जब आप फिर से एक नया ऐप जनरेट करते हैं।
अपने हैश मानों को रूपांतरित करें
यह एक और चीज है जिसकी मुझे अक्सर आवश्यकता होती है कि मेरी इच्छा है कि यह रूबी में अंतर्निहित हो। जब आप transform_values को कॉल करते हैं हैश पर, यह map . को कॉल करने जैसा काम करता है हैश मानों पर, और बदले गए मानों से संबद्ध मूल कुंजियों के साथ एक नया हैश लौटाता है:
h = {a: 1, b: 2, c: 3}
h.transform_values { |v| v * 2 } # => {a: 2, b: 4, c: 6}
काफी सरल। लेकिन आपको आश्चर्य होगा कि यह कितनी बार काम आता है।
बोनस:अधिक कॉन्फ़िगरेशन!
Rails 4.2 अपना वैश्विक कॉन्फ़िगरेशन सेट करने का एक आसान तरीका प्रदान करता है:
Rails.application.config.x.some_configuration_key = "Some Value"
Rails.application.config.x.some_configuration_key # => "Some Value"
Rails.configuration.x.some_configuration_key # => "Some Value"
यह विशेष रूप से तब काम करता है जब आप इसे config_for . के साथ जोड़ते हैं :
app_config = Rails.application.config_for(:app)
Rails.application.config.x.block_phone_calls = app_config["block_phone_calls"]
और भी बहुत कुछ है!
ऐसा लगता है कि रेल 4.2 को एक अद्भुत रिलीज के रूप में स्थापित किया गया है। लेकिन यह छोटे परिशोधन हैं जो इसे हर दिन रेल में काम करने के लिए इतना अच्छा बनाते हैं। इसलिए, यदि आपने अभी तक नहीं किया है, तो 4.2 रिलीज़ नोट्स पर एक नज़र डालें और देखें कि आपको कौन-से अन्य उपयोगी सुधार मिल सकते हैं।
(और अगर आप करते हैं कुछ अच्छी चीजें खोजें, इसे अपने तक ही सीमित न रखें। इसे यहां साझा करें, ताकि हम सब कुछ नया सीख सकें!)