কম্পিউটার টিউটোরিয়াল

রেলস হেল্পার্স মাস্টার করুন: রিযুজেবল ভিউ মেথডের সম্পূর্ণ গাইড

রেলসে হেল্পার কী?

একটি হেল্পার হলো একটি মেথড যা (প্রায়শই) আপনার রেলস ভিউতে রিযুজেবল কোড শেয়ার করতে ব্যবহৃত হয়। রেলস কিছু বিল্ট-ইন হেল্পার মেথডের সাথে আসে।

এই বিল্ট-ইন হেল্পারগুলোর মধ্যে একটি হলো time_ago_in_words।

এখানে একটি উদাহরণ:

 time_ago_in_words(Time.now) # "less than a minute" time_ago_in_words(Time.now + 60) # "1 minute" time_ago_in_words(Time.now + 600) # "10 minutes" 

এই মেথডটি খুব সাহায্যকারী যখনই আপনি এই স্পেসিফিক ফরম্যাটে টাইম ডিসপ্লে করতে চান।

আরেকটি রেলস ভিউ হেল্পার হলো number_to_human।

উদাহরণ:

 number_to_human(10_000) # "10 Thousand" 

এটি খুব ভালো যখন আপনি একটি নম্বর নিন এবং সেটি আপনি যেভাবে পড়বেন সেভাবে প্রিন্ট করতে চান, যা এটিকে আরও হিউমান ফিল করায়।

আপনি রুবি অন রেলস ডকুমেন্টেশনে আরও হেল্পার খুঁজে পাবেন।

কিন্তু আপনি কি জানতেন আপনি নিজেরাও লিখতে পারেন?

নিজস্ব হেল্পার মেথড লিখা

আপনি যদি কাস্টম হেল্পার মেথড লিখতে চান, সঠিক ডিরেক্টরি পাথ হলো app/helpers।

আপনি আপনার হেল্পারগুলো একটি হেল্পার মডিউল-এর ভিতরে লিখবেন।

প্রতিটি রেলস অ্যাপ্লিকেশনে একটি বেস হেল্পার মডিউল ডিফল্টভাবে থাকে, এটিকে ApplicationHelper বলা হয়।

এখানে আপনি আপনার হেল্পার মেথড যোগ করতে পারেন।

এই মেথডগুলো স্বয়ংক্রিয়ভাবে আপনার সকল ভিউতে উপলব্ধ হয়। পরে আপনি শিখবেন কীভাবে কন্ট্রোলারlerde এগুলো ব্যবহার করতে হয় এবং কেন সেটা খারাপ আইডিয়া হতে পারে।

আপনি আপনার সকল হেল্পার ApplicationHelper-এ লিখতে পারেন।

কিন্তু আরেকটি অপশন আছে…

আপনি হেল্পার মডিউল তৈরি করতে পারেন যাতে আপনার মেথডগুলো আরও ভালোভাবে অর্গানাইজ করতে পারেন।

ইনস্ট্রাকশন:

  • app/helpers আন্ডারে একটি নতুন ফাইল তৈরি করুন
  • এটিকে কিছু এরকম নাম দিন user_helper.rb
  • একটি নতুন মডিউল যোগ করুন যা ফাইল নামের সাথে মেলে

উদাহরণ:

 # app/helpers/user_helper.rb module UserHelper def format_name(user) if user.gender == "M" "Mr. #{user.name}" else "Ms. #{user.name}" end end end 

এই কোডটি একটি ব্যক্তিকে তাদের জেন্ডার ভিত্তিক করে ফরম্যালভাবে এড্রেস করতে ব্যবহার করা যেতে পারে।

মূল সুবিধা?

আপনাকে এই লজিক অন্য ভিউতে রিপিট করতে হয় না যখন দরকার এবং আপনি যখন কোড পরিবর্তন করতে চান… এটি শুধু এক জায়গায় পরিবর্তন করলেই চলে।

খুব ভালো!

নতুন হেল্পার মডিউল ব্যবহার করা

আপনি আপনার হেল্পার মেথডগুলো আপনার ভিউতে ব্যবহার করতে পারেন।

এভাবে:

 <%= format_name(@user) %> 

সহজ, ঠিক না?

আপনি যদি ভিউর বাইরে হেল্পার ব্যবহার করতে চান তবে আপনাকে কিছু আরো দরকার।

কন্ট্রোলার থেকে হেল্পার ব্যবহার করা

এটি সম্ভব, যদিও খুব কমন নয়, কন্ট্রোলার অ্যাকশন থেকে হেল্পার মেথড ব্যবহার করা।

রেলস ৫-এর আগে, আপনাকে হেল্পার মডিউল ইনক্লুড করতে হত।

নতুন ভার্সনে, আপনি helpers (প্লুরাল) অবজেক্ট দিয়ে কন্ট্রোলারে হেল্পার ব্যবহার করতে পারেন।

এভাবে:

 class UsersController def index helpers.time_ago_in_words(Time.now) end end 

এভাবে আপনি কন্ট্রোলার থেকে হেল্পার ব্যবহার করতে পারেন। কিন্তু দুবার ভাবুন এর আগে কারণ এটি একটি ডিজাইন ইস্যু হতে পারে।

একটি প্লেইন রুবি অবজেক্ট ব্যবহার করার কথা বিবেচনা করুন।

রেলস কনসোলের সাথে মজা

আমি রেলস কনসোল (আপনার রেলস অ্যাপ লোডেড irb) ব্যবহার করে মেথড ট্রাই আউট করা এবং জিনিসপত্র নিয়ে খেলা পছন্দ করি।

হেল্পারও অন্তর্ভুক্ত!

আপনি কনসোল থেকে হেল্পার ব্যবহার করতে পারেন helper.method_name দিয়ে।

“helper”-এর সিঙ্গুলার ফর্ম লক্ষ্য করুন যাতে আপনি এরর মেসেজ পান না। এবং মনে রাখবেন কনসোল অটোমেটিক্যালি কোড চেঞ্জ রিলোড করে না।

রেলস ভিউ হেল্পার লিখার জন্য সেরা অভ্যাস

আপনি কখন একটি হেল্পার মেথড তৈরি করবেন?

যখনই আপনার কাছে লজিক থাকে যা HTML-এর বিটস প্রডিউস করে।

সাধারণত, এটি দুটি ক্যাটাগরির একটিয় পড়ে, একটি হলো স্ট্রিং ফরম্যাটিং এবং অন্যটি হলো কন্ডিশনাল পেজ এলিমেন্ট।

আরেকটি টিপ…

আপনি যদি ভালো হেল্পার লিখতে চান তবে কোনো ইনস্ট্যান্স ভেরিয়েবল ব্যবহার করবেন না, সেগুলো আপনার বর্তমান ভিউতে উপলব্ধ থাকতে পারে, কিন্তু অন্য ভিউতে নাও থাকতে পারে।

এটি মিসিং ভেরিয়েবলের কারণে একটি এরর ফলাফল দেবে।

সমাধান?

প্যারামিটার ব্যবহার করুন, যাতে আপনার মেথড যে ডেটা দরকার সেটি স্পষ্ট এবং এক্সপ্লিসিট হয়।

 # wrong way def eat_healthy @fruit.eat end # do this instead def eat_healthy(fruit) fruit.eat end 

আমার চেষ্টা টিপ হলো আপনার হেল্পারগুলো মডিউলে ভাগ করুন, যেখানে প্রতিটি মডিউলের নাম স্পষ্টভাবে বর্ণনা করে এতে কী ধরনের মেথড আছে।

তবে:

এটি ডুপ্লিকেট মেথড নামের সাথে সাহায্য করবে না, যা এরর এবং কনফিউশনে ফলাফল দিতে পারে।

আপনার সকল হেল্পারদের যুনিক নাম থাকা উচিত।

বিকল্পভাবে, প্রেজেন্টার অবজেক্ট ব্যবহার করার চেষ্টা করুন, যেভাবে এই গাইডে ব্যাখ্যা করা আছে।

সারাংশ

আপনি রেলসে হেল্পার সম্পর্কে শিখেছেন! আপনার ভিউতে ফরম্যাটিং এবং জটিল লজিক হ্যান্ডল করার জন্য ইউটিলিটি মেথডের একটি সেট।

এখন আপনার নিজস্ব হেল্পার তৈরি করার পালা।

পড়ার জন্য ধন্যবাদ 🙂


  1. Mac-এ Snapchat ব্যবহার: সহজ ও প্র্যাক্টিক্যাল গাইড

  2. Google Forms দ্রুত তৈরি করুন: সার্ভে ও কুইজের জন্য ধাপে ধাপে গাইড

  3. ওয়েবসাইট সুরক্ষার 궁극িক গাইড: প্রমাণিত কৌশল ও সেরা অনুশীলন

  4. iTunes 12 আয়ত্ত করুন: মিউজিক, মুভি ও আরও অনেক কিছু সংগঠিত করার সমগ্র গাইড