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

रूबी में डेटा का निरीक्षण

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

डालता है , #निरीक्षण और पी

रूबी का डालता है संदेश को कंसोल पर प्रिंट करने के लिए विधि का उपयोग किया जाता है।

unknown = "This is a string"
puts unknown

ऊपर स्क्रिप्ट चलाते समय, मान प्रिंट किया जाता है ताकि आप देख सकें कि अंदर क्या है।

$ ruby puts.rb
This is a string

हालांकि, अगर अज्ञात वेरिएबल में एक खाली स्ट्रिंग होती है, एक शून्य मान या खाली हैश, डाता है एक खाली लाइन प्रिंट करेगा। इसके साथ, आप इसका सटीक मान नहीं देख पाएंगे, और आप खाली हैश और स्ट्रिंग्स के बीच अंतर नहीं कर पाएंगे, उदाहरण के लिए।

$ ruby puts_empty_string.rb

सौभाग्य से, निरीक्षण नामक एक उदाहरण विधि है, जो आपके सामने आने वाली प्रत्येक वस्तु पर लागू की जाती है। यह वस्तु का एक स्ट्रिंग प्रतिनिधित्व लौटाएगा।

unknown = ""
puts unknown.inspect

एक खाली स्ट्रिंग के लिए, यह उद्धरणों की एक जोड़ी लौटाएगा, और एक सरणी के लिए, यह कोष्ठक की एक जोड़ी लौटाएगा।

$ ruby inspect_empty_string.rb
""
$ ruby inspect_empty_array.rb
[]

चूंकि डालता है . का संयोजन और निरीक्षण अक्सर उपयोग किया जाता है, एक शॉर्टकट है जो एक ही बार में दोनों काम करता है, जिसे p . कहा जाता है . यह ठीक वही काम करता है, लेकिन यह टाइप करने में तेज है।

unknown = ""
p unknown # equivalent to `puts unknown.inspect`

रेल व्यू में डेटा की जांच करना

हालांकि p . है शॉर्टकट, निरीक्षण . के बारे में जानना अभी भी उपयोगी है विधि जब आपको किसी ऑब्जेक्ट के स्ट्रिंग प्रतिनिधित्व की आवश्यकता होती है बिना इसे कंसोल पर प्रिंट करना।

एक रेल दृश्य में, उदाहरण के लिए, कभी-कभी परिणामी HTML पृष्ठ पर मान को लॉग में खोजने के बजाय प्रिंट करना अधिक उपयोगी होता है।

<%= params.inspect %>

अधिक जटिल डेटा संरचनाओं का निरीक्षण करते समय, आप जिस डेटा को खोज रहे हैं उसे ढूंढना कभी-कभी मुश्किल होता है, क्योंकि निरीक्षण किया गया मान एक पंक्ति पर मुद्रित होता है।

रेल डीबग प्रदान करता है इस के आसपास पाने के लिए सहायक। केवल मूल्य का निरीक्षण करने के बजाय, यह वस्तु को मानव पठनीय YAML प्रतिनिधित्व में परिवर्तित कर देगा और इसे

<%= debug params %>

डीबग हेल्पर to_yaml . का उपयोग करता है YAML प्रतिनिधित्व प्राप्त करने के लिए हुड के नीचे विधि, इसे

irb(main):004:0* puts Product.first.to_yaml
--- !ruby/object:Product
concise_attributes:
- !ruby/object:ActiveRecord::Attribute::FromDatabase
  name: id
  value_before_type_cast: 4
- !ruby/object:ActiveRecord::Attribute::FromDatabase
  name: title
  value_before_type_cast: Title
  ....

जैसा कि आप उम्मीद करने आए हैं, किसी वस्तु के YAML प्रतिनिधित्व को भी प्रिंट करने के लिए एक शॉर्टकट है। ऊपर दिए गए उदाहरण को y Product.first . का उपयोग करके एक बार में कॉल किया जा सकता है ।

irb(main):004:0* y Product.first # equivalent to `puts Product.first.to_yaml`
--- !ruby/object:Product
...

"पुट"-डिबगिंग

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

हमें यह जानना अच्छा लगेगा कि आपको यह लेख कैसा लगा, यदि इसके बारे में आपके कोई प्रश्न हैं, और आप आगे क्या पढ़ना चाहते हैं, तो हमें @AppSignal पर बताना सुनिश्चित करें।


  1. रूबी में अपवादों में संदर्भ डेटा कैसे जोड़ें

    कभी-कभी मानक बैकट्रैक/त्रुटि संदेश कॉम्बो पर्याप्त नहीं होता है। त्रुटि के कारण का पता लगाने के लिए कभी-कभी आपको अतिरिक्त डेटा की आवश्यकता होती है। सौभाग्य से, रूबी में करना बहुत आसान है। त्रुटि संदेश को अनुकूलित करना अपनी त्रुटियों में प्रासंगिक जानकारी जोड़ने का सबसे आसान तरीका इसे अपवाद के संदेश

  1. रूबी डेवलपर्स के लिए डेटा संरचनाओं का अवलोकन

    डेटा संरचना क्या है? डेटा संरचना डेटा को व्यवस्थित और एक्सेस करने का एक विशिष्ट तरीका है । उदाहरणों में शामिल हैं: सरणी बाइनरी ट्री हैश विभिन्न डेटा संरचनाएं अलग-अलग कार्यों में उत्कृष्ट होती हैं। उदाहरण के लिए, यदि आप शब्दकोश (शब्द और परिभाषा), या फ़ोन बुक (व्यक्ति का नाम और संख्या) जैसा दिखन

  1. रूबी में 9 नई सुविधाएँ 2.6

    रूबी का एक नया संस्करण नई सुविधाओं और प्रदर्शन में सुधार के साथ आ रहा है। क्या आप परिवर्तनों के साथ बने रहना चाहेंगे? आइए एक नज़र डालते हैं! अंतहीन रेंज रूबी 2.5 और पुराने संस्करण पहले से ही अंतहीन श्रेणी के एक रूप का समर्थन करते हैं (Float::INFINITY के साथ) ), लेकिन रूबी 2.6 इसे अगले स्तर पर ले