अधिकांश अपवाद अनपेक्षित डेटा को उन तरीकों से पारित किए जाने के कारण होते हैं जो अन्यथा ठीक काम करते हैं, इसलिए त्रुटि का कारण खोजने के लिए आपके एप्लिकेशन के माध्यम से डेटा के एक टुकड़े का पता लगाना अक्सर उपयोगी होता है। इस लेख में, हम रूबी और रेल अनुप्रयोगों में डेटा का निरीक्षण करेंगे।
डालता है
, #निरीक्षण
और पी
रूबी का डालता है
संदेश को कंसोल पर प्रिंट करने के लिए विधि का उपयोग किया जाता है।
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 प्रतिनिधित्व को भी प्रिंट करने के लिए एक शॉर्टकट है। ऊपर दिए गए उदाहरण को
आपके एप्लिकेशन में डेटा का निरीक्षण करने के और भी तरीके हैं, जैसे कि Pry लाइब्रेरी और रूबी का अपना डीबगर। हालांकि डेटा की जांच करने के अन्य तरीकों की जांच करना निश्चित रूप से एक अच्छा विचार है, कंसोल पर लॉग लिखना या किसी दृश्य में डेटा का एक टुकड़ा दिखाना अक्सर यह पता लगाने का सबसे तेज़ तरीका है कि क्या हो रहा है।
हमें यह जानना अच्छा लगेगा कि आपको यह लेख कैसा लगा, यदि इसके बारे में आपके कोई प्रश्न हैं, और आप आगे क्या पढ़ना चाहते हैं, तो हमें @AppSignal पर बताना सुनिश्चित करें।डीबग
प्रदान करता है इस के आसपास पाने के लिए सहायक। केवल मूल्य का निरीक्षण करने के बजाय, यह वस्तु को मानव पठनीय 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
....
y Product.first
. का उपयोग करके एक बार में कॉल किया जा सकता है ।irb(main):004:0* y Product.first # equivalent to `puts Product.first.to_yaml`
--- !ruby/object:Product
...
"पुट"-डिबगिंग