Ruby on Rails (RoR) একটি Model-View-Controller (MVC) ভিত্তিক ফ্রেমওয়ার্ক, যেখানে প্রতিটি উপাদান (Model, View, এবং Controller) বিশেষ ভূমিকা পালন করে। এই আর্কিটেকচার ডেভেলপমেন্ট প্রক্রিয়াকে কাঠামোবদ্ধ এবং সহজ করে তোলে, কারণ প্রতিটি উপাদান আলাদা দায়িত্ব পালন করে।
Model ফোল্ডার এর ভূমিকা
Model ফোল্ডারটি অ্যাপ্লিকেশনের ডেটা এবং ডেটাবেসের লজিক সংরক্ষণ করে। Model মডেলগুলি সাধারণত ডেটার ম্যানিপুলেশন এবং ব্যবসায়িক লজিকের কাজ করে, এবং অ্যাপ্লিকেশনটির ডেটাবেসের সাথে যোগাযোগ করে।
Model এর ভূমিকা:
- ডেটাবেস ইন্টারঅ্যাকশন:
Model ফোল্ডারের মডেলগুলি ডেটাবেসের সাথে যোগাযোগ করে এবং ডেটা সঞ্চয়, পরিবর্তন বা মুছে ফেলার কাজ করে। Ruby on Rails এর Active Record হল একটি ORM (Object-Relational Mapping) যা মডেল এবং ডেটাবেসের মধ্যে সম্পর্ক তৈরি করে। - ডেটা ভ্যালিডেশন:
Model ফোল্ডারে আপনি ডেটার ভ্যালিডেশন এবং ক্লিন আপ কার্যক্রম সংজ্ঞায়িত করতে পারেন। উদাহরণস্বরূপ, মডেলের মধ্যেvalidatesপদ্ধতি ব্যবহার করে ডেটা ভ্যালিডেশন করা হয়। - ব্যবসায়িক লজিক:
Model ফোল্ডার অ্যাপ্লিকেশনের ব্যবসায়িক লজিক (যেমন: যোগফল, ডেটা ফিল্টারিং, ক্যালকুলেশন ইত্যাদি) নির্ধারণ করে।
উদাহরণ:
# app/models/user.rb
class User < ApplicationRecord
validates :name, presence: true
has_many :posts
end
এখানে User মডেলটি name ফিল্ডের জন্য ভ্যালিডেশন এবং posts এর সাথে সম্পর্ক সংজ্ঞায়িত করেছে।
View ফোল্ডার এর ভূমিকা
View ফোল্ডারটি ইউজারের ইন্টারফেস উপস্থাপন করে। এখানে সাধারণত HTML, CSS, এবং JavaScript কোড রাখা হয়, যা ব্যবহারকারীর সামনে প্রদর্শিত হয়। ERB (Embedded Ruby) টেমপ্লেট ব্যবহার করে ডাইনামিক HTML তৈরি করা হয়।
View এর ভূমিকা:
- ইউজার ইন্টারফেস:
View ফোল্ডারটি UI উপস্থাপনা সংক্রান্ত সমস্ত ফাইল ধারণ করে, যেখানে ব্যবহারকারী অ্যাপ্লিকেশনটির সাথে ইন্টারঅ্যাক্ট করে। - ডেটা উপস্থাপন:
Controller থেকে প্রাপ্ত ডেটাকে View টেমপ্লেট ব্যবহার করে উপস্থাপন করা হয়। - ডাইনামিক HTML রেন্ডারিং:
Ruby কোড HTML এর মধ্যে এম্বেড করা হয় (ERB টেমপ্লেটের মাধ্যমে), যার মাধ্যমে ডাইনামিক কনটেন্ট তৈরি করা হয়।
উদাহরণ:
<!-- app/views/users/show.html.erb -->
<h1><%= @user.name %></h1>
<p>Email: <%= @user.email %></p>
এখানে @user.name এবং @user.email ব্যবহার করে ডাইনামিক ডেটা উপস্থাপন করা হয়েছে।
Controller ফোল্ডার এর ভূমিকা
Controller ফোল্ডারটি Model এবং View এর মধ্যে সংযোগ স্থাপন করে। এটি ইউজারের রিকোয়েস্ট প্রক্রিয়া করে এবং প্রয়োজনীয় ডেটা (Model থেকে) সংগ্রহ করে তা View এ পাঠায়। Controller ফোল্ডারের কাজ হলো ব্যবসায়িক লজিক এবং রাউটিং।
Controller এর ভূমিকা:
- রিকোয়েস্ট প্রক্রিয়াকরণ:
Controller ইউজারের HTTP রিকোয়েস্ট গ্রহণ করে, সেই রিকোয়েস্ট অনুযায়ী অ্যাকশন পরিচালনা করে এবং উপযুক্ত View এ ডেটা পাঠায়। - ডেটা সংগ্রহ:
Controller ফোল্ডার মডেল থেকে ডেটা সংগ্রহ করে এবং তা View এ প্রদর্শন করার জন্য প্রস্তুত করে। - অ্যাকশন সংজ্ঞায়ন:
প্রতিটি Controller একটি বা একাধিক অ্যাকশন ধারণ করে, যা রিকোয়েস্টের ভিত্তিতে নির্দিষ্ট কাজ সম্পন্ন করে (যেমন, ডেটা তৈরি, সম্পাদনা, মুছে ফেলা বা প্রদর্শন করা)।
উদাহরণ:
# app/controllers/users_controller.rb
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
end
এখানে UsersController একটি show অ্যাকশন রয়েছে, যা id প্যারামিটার ব্যবহার করে নির্দিষ্ট User মডেলটি খুঁজে বের করে এবং @user ভেরিয়েবল হিসেবে View এ পাঠায়।
সারমর্ম
- Model: ডেটার লজিক এবং ডেটাবেসের সাথে সম্পর্কিত কাজ করে।
- View: ব্যবহারকারীর জন্য ডাইনামিক UI তৈরি করে এবং ডেটা প্রদর্শন করে।
- Controller: ইউজারের রিকোয়েস্ট প্রক্রিয়া করে এবং Model ও View এর মধ্যে সংযোগ স্থাপন করে।
এই তিনটি উপাদান একত্রে কাজ করে Ruby on Rails এর MVC আর্কিটেকচার, যা অ্যাপ্লিকেশন ডেভেলপমেন্টকে কাঠামোবদ্ধ এবং সহজ করে তোলে।
Read more