Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

छिपे हुए रत्न खोजें: रेल्स 4.2 में शक्तिशाली फिर भी अनदेखी विशेषताएं

पिछले हफ्ते रेल्स 4.2 का पहला बीटा घोषित किया गया था, और यह पहले से ही अद्भुत लग रहा है। मैं अपने ऐप्स में ActiveJob, वेब कंसोल, एडिक्वेट रिकॉर्ड, और फॉरेन की सपोर्ट का उपयोग करने के लिए वास्तव में उत्साहित हूं।

लेकिन रेल्स की सुंदरता विवरण में है। और यदि आप थोड़ी खुदाई करते हैं, तो आप कुछ कम विज्ञापित विशेषताएं पाएंगे जो रेल्स के साथ आपके दैनिक काम को पूरी तरह से सुधार देंगी।

आसानी से कॉन्फ़िग फाइलें लोड करें

ठीक है, मैं पक्षपाती हो सकता हूं। लेकिन कॉन्फ़िग फाइलों को लोड करने का एक बिल्ट-इन तरीका होना बहुत बढ़िया होने वाला है।

config_for, रेल्स 4.2 में नया, ठीक वैसे ही काम करता है जैसे आप उम्मीद करेंगे:

config/redis.yml
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 के लिए सही कॉन्फ़िगरेशन वापस करेगा।

यह आपको अपने YAML में ERB डालने भी देता है:

config/redis.yml
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 आपको नए रेल्स ऐप्स उत्पन्न करते समय एक कम निर्णय लेने के लिए देता है। और एक बार जब आप git pull के बाद bin/setup चलाने की आदत डाल लेते हैं, तो आपको नया ऐप उत्पन्न करते समय फिर कभी rake db:setup चलाना याद नहीं रखना पड़ेगा।

अपने हैश मानों को ट्रांसफॉर्म करें

यह एक और चीज है जिसकी मुझे अक्सर पर्याप्त आवश्यकता होती है कि मुझे लगता है कि यह रूबी में बिल्ट-इन था। जब आप हैश पर transform_values कॉल करते हैं, तो यह हैश मानों पर map कॉल करने जैसा कार्य करता है, और मूल कुंजियों से जुड़े प्रतिस्थापित मानों के साथ एक नया हैश वापस करता है:

h = {a: 1, b: 2, c: 3}
h.transform_values { |v| v * 2 }
# => {a: 2, b: 4, c: 6}

काफी सरल। लेकिन आप आश्चर्यचकित होंगे कि यह कितनी बार काम आता है।

बोनस: अधिक कॉन्फ़िगरेशन!

रेल्स 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 रिलीज़ नोट्स के माध्यम से एक त्वरित नज़र डालें और देखें कि आप कौन सी अन्य सहायक सुधार पा सकते हैं।

(और यदि आप कुछ अच्छी चीजें पाते हैं, तो इसे अपने पास न रखें। इसे यहां साझा करें, ताकि हम सभी कुछ नया सीख सकें!)

  1. Opera GX बनाम Opera - कौन सा ब्राउज़र बेहतर है? Opera GX बनाम Opera - कौन सा ब्राउज़र बेहतर है?

    Opera उद्योग में सबसे पुराने ब्राउज़रों में से एक है, और यह सबसे अच्छे में से एक भी है। इसमें बिल्ट-इन VPN, ऐड-ब्लॉकर आदि जैसी विशेषताएं हैं। हालांकि, कंपनी Opera GX भी बनाती है जिसे वे गेमिंग ब्राउज़र के रूप में संदर्भित करते हैं। इस लेख में, हम Opera GX बनाम Opera देखेंगे और देखेंगे कि आपको कौन सा

  1. एंड्रॉइड पर गूगल असिस्टेंट की सर्वश्रेष्ठ विशेषताएं एंड्रॉइड पर गूगल असिस्टेंट की सर्वश्रेष्ठ विशेषताएं

    एक गूगल असिस्टेंट है जो अन्य सभी असिस्टेंट को उनके पैसे के लिए दौड़ाना चाहता है। नाम काफी आत्म-व्याख्यात्मक है क्योंकि इसे गूगल असिस्टेंट कहा जाता है। यह एलेक्सा, सिरी और कोर्टाना को पानी से बाहर निकालना चाहता है। गूगल असिस्टेंट को पिछले साल मई में गूगल I/O में पहली बार प्रस्तुत किया गया था, और यह क

  1. टेक गियर के लिए 5 सर्वश्रेष्ठ बैकपैक टेक गियर के लिए 5 सर्वश्रेष्ठ बैकपैक

    यदि आप टेक गियर के साथ यात्रा करते हैं, तो आप एक मानक बैकपैक में अपना सामान ठूंसने की निराशा जानते हैं। मेमोरी कार्ड जैसी छोटी चीजें अक्सर गुम हो जाती हैं, और महंगे इलेक्ट्रॉनिक्स खरोंच और क्षतिग्रस्त हो सकते हैं। सौभाग्य से, अपने सभी इलेक्ट्रॉनिक्स को सुरक्षित रखते हुए यात्रा करने का एक बेहतर तरीका