কম্পিউটার

রুবিতে ডেটা পরিদর্শন করা হচ্ছে

বেশিরভাগ ব্যতিক্রমগুলি অপ্রত্যাশিত ডেটা এমন পদ্ধতিতে পাস করার কারণে হয় যা অন্যথায় ভাল কাজ করে, তাই একটি ত্রুটির কারণ খুঁজে পেতে আপনার অ্যাপ্লিকেশনের মাধ্যমে ডেটার একটি অংশ ট্রেস করা প্রায়শই দরকারী। এই নিবন্ধে, আমরা রুবি এবং রেল অ্যাপ্লিকেশনগুলিতে ডেটা পরিদর্শন করব৷

পুট , #inspect এবং p

রুবির পুট পদ্ধতি কনসোলে একটি বার্তা প্রিন্ট করতে ব্যবহৃত হয়।

unknown = "This is a string"
puts unknown

উপরের স্ক্রিপ্টটি চালানোর সময়, ভিতরে কী আছে তা দেখতে আপনাকে অনুমতি দেওয়ার জন্য মানটি প্রিন্ট করা হয়।

$ ruby puts.rb
This is a string

যাইহোক, যদি অজানা ভেরিয়েবল একটি খালি স্ট্রিং ধারণ করে, একটি nil মান বা একটি খালি হ্যাশ, পুট একটি খালি লাইন প্রিন্ট করবে। এর সাথে, আপনি এর সঠিক মান দেখতে পারবেন না এবং আপনি খালি হ্যাশ এবং স্ট্রিংগুলির মধ্যে পার্থক্য করতে পারবেন না, উদাহরণস্বরূপ।

$ 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 আছে শর্টকাট, পরিদর্শন সম্পর্কে জানা এখনও দরকারী পদ্ধতি যখন আপনি একটি বস্তুর একটি স্ট্রিং উপস্থাপনা প্রয়োজন ব্যতীত কনসোলে প্রিন্ট করা হচ্ছে।

একটি Rails ভিউতে, উদাহরণস্বরূপ, এটি লগে খুঁজে পাওয়ার পরিবর্তে ফলস্বরূপ এইচটিএমএল পৃষ্ঠায় মানটি প্রিন্ট করা অনেক সময় বেশি কার্যকর।

<%= params.inspect %>

আরও জটিল ডেটা স্ট্রাকচার পরিদর্শন করার সময়, আপনি যে ডেটা খুঁজছেন তা খুঁজে পাওয়া কখনও কখনও কঠিন, কারণ পরিদর্শন করা মানটি একটি একক লাইনে মুদ্রিত হয়৷

রেলগুলি ডিবাগ প্রদান করে এই কাছাকাছি পেতে সাহায্যকারী. শুধুমাত্র মান পরিদর্শন করার পরিবর্তে, এটি বস্তুটিকে মানব পাঠযোগ্য YAML উপস্থাপনায় রূপান্তরিত করবে এবং

<%= debug params %>

ডিবাগ সাহায্যকারী to_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
...

"puts"-ডিবাগিং

আপনার অ্যাপ্লিকেশনগুলিতে ডেটা পরিদর্শন করার আরও উপায় রয়েছে, যেমন প্রাই লাইব্রেরি এবং রুবির নিজস্ব ডিবাগার। যদিও ডেটা পরিদর্শনের অন্যান্য পদ্ধতিগুলি পরীক্ষা করা অবশ্যই একটি ভাল ধারণা, কনসোলে একটি লগ লেখা বা একটি দৃশ্যে ডেটার একটি অংশ দেখানো প্রায়শই কী ঘটছে তা খুঁজে বের করার দ্রুততম উপায়৷

আমরা জানতে চাই যে আপনি এই নিবন্ধটি কীভাবে পছন্দ করেছেন, যদি এটি সম্পর্কে আপনার কোন প্রশ্ন থাকে এবং আপনি পরবর্তীতে কী পড়তে চান, তাই @AppSignal-এ আমাদের জানাতে ভুলবেন না।


  1. রুবিতে ল্যাম্বডাস ব্যবহার করা

  2. রুবিতে ব্যতিক্রমগুলিতে প্রসঙ্গ ডেটা কীভাবে যুক্ত করবেন

  3. রুবি ডেভেলপারদের জন্য ডেটা স্ট্রাকচারের একটি ওভারভিউ

  4. রুবি 2.6-এ 9টি নতুন বৈশিষ্ট্য