আপনি হয়তো রেলস শিখছেন এবং পড়েছেন যে আপনাকে আপনার রেলস অ্যাপ্লিকেশন শুরু করার জন্য একটি “scaffold” তৈরি করতে হবে…
সহজ!
আপনি এটি rails g scaffold কমান্ড ব্যবহার করে করতে পারেন।
তবে স্ক্যাফোল্ডিং কী?
“Scaffolding is a temporary structure used to support a work crew to aid in the construction, maintenance and repair of buildings, bridges and all other man-made structures.” – Wikipedia
রেলসে অনুবাদ করলে:
এক স্ক্যাফোল্ড হলো অটোমেটিক্যালি জেনারেটেড ফাইলগুলোর একটি সেট যা একটি রেলস প্রজেক্টের বেসিক স্ট্রাকচার তৈরি করে।
এই ফাইলগুলো অন্তর্ভুক্ত করে:
- একটি কন্ট্রোলার
- একটি মডেল
- প্রতিটি স্ট্যান্ডার্ড কন্ট্রোলার অ্যাকশনের জন্য ভিউ (index, edit, show, new)
একটি নতুন রুট।
এবং আপনার ডেটাবেস প্রস্তুত করার জন্য একটি মাইগ্রেশন।
চলুন একটি উদাহরণ দেখি!
রেলস স্ক্যাফোল্ড কমান্ড কীভাবে ব্যবহার করবেন
বই সম্পর্কে একটি ওয়েবসাইটের জন্য একটি প্রজেক্ট স্ক্যাফোল্ড করার উদাহরণ এইরকম দেখাবে।
rails g scaffold books
আপনি অনেক টেক্সট স্ক্রোল বাইতে দেখবেন, যা তৈরি হচ্ছে ফাইলগুলো ডিটেইল করছে।
এই উদাহরণ তৈরি করে:
- একটি
BooksController - একটি
Bookমডেল - আপনার
config/routes.rbফাইলে একটি নতুনresources :booksরুট যোগ করা - এক সেট টেস্টিং-রিলেটেড ফাইল
app/views/booksআন্ডারে ভিউ ফাইল (মোট পাঁচটি)
হ্যাঁ।
এটি অনেক কিছু।
আপনি যদি এই স্ক্যাফোল্ডিং আনডু করতে চান, সেটি তৈরি করার ঠিক পরে, আপনি নিচের কমান্ড ব্যবহার করতে পারেন।
rails d scaffold books
যেখানে “d” মানে “destroy”।
মনে রাখবেন যে এটি স্ক্যাফোল্ডিং প্রসেস দ্বারা তৈরি ফাইলগুলো ডিলিট করবে।
এখন:
আপনার স্ক্যাফোল্ডেড কোড ব্যবহার করার আগে আপনাকে আপনার মাইগ্রেশন চালাতে হবে আপনার ডেটাবেস স্কিমা আপডেট করার জন্য।
rails db:migrate কমান্ড ব্যবহার করুন।
যদি কোনো এরর মেসেজ না দেখায়, আপনি রেডি! আপনার নতুন রেলস অ্যাপ্লিকেশনের, বা একটি নতুন ফিচারের জন্য যা একটি নতুন মডেল, ভিউ এবং করেসপন্ডিং কন্ট্রোলার দরকার, একটি বেসিক স্ট্রাকচার আপনার কাছে আছে।
পরবর্তীতে:
rails server চালান।
আপনার ব্রাউজারে localhost:3000/books খুলুন এবং আপনি ফলাফল দেখতে পাবেন!
এক্সট্রা ফিল্ডসহ রেলস স্ক্যাফোল্ডিং
ডিফল্টভাবে…
আপনার মডেল শুধু টাইমস্ট্যাম্প ফিল্ড পায়, যার মানে আপনি আপনার বইগুলো (বা যেকোনো মডেল যা আপনি কাজ করছেন) সম্পর্কে যা একমাত্র ইনফরমেশন রেকর্ড করতে পারবেন সেটি হলো সেগুলো কখন তৈরি হয়েছে, বা আপডেট হয়েছে।
এখানে এক্সট্রা ফিল্ডসহ স্ক্যাফোল্ড করার পদ্ধতি:
rails g scaffold books title:string author:string publication_year:integer
আপনি যদি এইভাবে আপনার স্ক্যাফোল্ডিং জেনারেট করেন, আপনার কাছে ৩টি ফিল্ড থাকবে কাজ করার জন্য।
এটি শুধু ডেটাবেস টাইমস্ট্যাম্প থাকার চেয়ে কিছু বেশি আকর্ষণীয়।
বkürz।
এটি সেম সিনট্যাক্স যা আমরা rails g migration দিয়ে মাইগ্রেশন তৈরি করার জন্য ব্যবহার করি।
স্পেসিফিক কম্পোনেন্ট জেনারেট করা
স্ক্যাফোল্ডিং কিছু জিনিস তৈরি করে যা আপনার এখন দরকার নাও হতে পারে বা আপনি চাওয়া নাও হতে পারে।
কিন্তু রেলস ভদ্র।
আপনি `rails g` (g for generate) কমান্ড ব্যবহার করে ইন্ডিভিডুয়াল কম্পোনেন্ট, মডেল, বা ভিউ ফাইল তৈরি করতে পারেন।
উদাহরণ:
rails g controller Fruitrails g model Fruit name:string color:string(মডেল + মাইগ্রেশন তৈরি করে)rails g migration CreateBook title:string year:integer(শুধু মাইগ্রেশন তৈরি করে)
স্ক্যাফোল্ডিং কমান্ড ব্যবহার করার একটি বড় সুবিধা হলো সকল ফাইল সঠিক নেমিং কনভেনশন ব্যবহার করে তৈরি হয়, যা স্ট্রেইঞ্জ এরর মেসেজ এড়াতে সাহায্য করে। এছাড়া এটি আপনাকে এই ফাইলগুলো ম্যানুয়ালি তৈরি করার ঝামেলা থেকে বাঁচায়।
Btw…
যে অটো-জেনারেটেড ফাইলগুলো আপনি ব্যবহার করার পরিকল্পনা করছেন না সেগুলো ডিলিট করা ভালো প্র্যাকটিস বলে বিবেচিত হয়। তাই “g controller” মructorخدام করার পর, তৈরি হওয়া ফাইলগুলোর তালিকা রিভিউ করুন এবং যেগুলো আপনার দরকার নেই সেগুলো রিমুভ করুন।
সারাংশ
আপনি রুবিতে স্ক্যাফোল্ডিং সম্পর্কে শিখেছেন যাতে আপনি দ্রুত একটি নতুন রেলস অ্যাপ্লিকেশন জাম্পস্টার্ট করতে পারেন প্র্যাকটিস করার জন্য।
আপনি জygote শিখবেন, আপনি হয়তো স্ক্যাফোল্ডিং ছাড়া চলতে চাবেন।
কিন্তু আপনি এখনো ইন্ডিভিডুয়াল কন্ট্রোলার, মডেল, বা ভিউ ফাইল জেনারেট করতে পারেন যখন আপনার দরকার।
পড়ার জন্য ধন্যবাদ! 🙂