Computer Programming ActiveRecord এর পরিচিতি গাইড ও নোট

249

ActiveRecord রুবি অন রেলস (Ruby on Rails) ফ্রেমওয়ার্কের একটি গুরুত্বপূর্ণ উপাদান, যা Object-Relational Mapping (ORM) এর মাধ্যমে ডেটাবেসের সাথে যোগাযোগ এবং ডেটার ম্যানিপুলেশন সহজ করে তোলে। ActiveRecord রুবি ক্লাসকে ডেটাবেস টেবিলের সাথে মানানসই করে, যা আপনাকে SQL কমান্ড লেখার পরিবর্তে রুবি কোড ব্যবহার করে ডেটাবেস অপারেশন পরিচালনা করতে সহায়তা করে।

ActiveRecord এর মূল উদ্দেশ্য

ActiveRecord এর মূল উদ্দেশ্য হল অবজেক্ট-অরিয়েন্টেড ডেটাবেস (Object-Oriented Database) ব্যবস্থাপনা, যেখানে আপনি রুবির অবজেক্টের মাধ্যমে ডেটাবেসের টেবিলের রেকর্ডের সাথে কাজ করেন। ActiveRecord আপনার রুবি ক্লাসকে ডেটাবেস টেবিলের সাথে ম্যাপ করে এবং ডেটাবেসের CRUD (Create, Read, Update, Delete) অপারেশনগুলো সম্পন্ন করতে সাহায্য করে।

ActiveRecord এর মূল বৈশিষ্ট্য

  1. Object-Relational Mapping (ORM):
    • ActiveRecord ক্লাসকে ডেটাবেস টেবিলের সাথে ম্যাপ করে, যার মাধ্যমে আপনি রুবি কোডের মাধ্যমে ডেটাবেসের রেকর্ড পরিচালনা করতে পারেন।
    • আপনি ডেটাবেস টেবিলের রেকর্ডকে রুবি অবজেক্ট হিসেবে দেখতে পাবেন এবং তাতে কাজ করতে পারবেন।
  2. CRUD Operations:
    • ActiveRecord আপনাকে সহজে Create, Read, Update, এবং Delete অপারেশন করতে সহায়তা করে, যা ডেটাবেসের সাথে যোগাযোগের জন্য SQL লেখা ছাড়াই কার্যকর।
  3. Associations:
    • ActiveRecord আপনাকে বিভিন্ন টেবিলের মধ্যে সম্পর্ক স্থাপন করতে সহায়তা করে, যেমন has_many, belongs_to, has_one, has_and_belongs_to_many সম্পর্কগুলো।
  4. Validations:
    • ActiveRecord ডেটার ইনপুটের পূর্বে যাচাই (validation) সম্পন্ন করতে সহায়তা করে, যেমন ন্যূনতম দৈর্ঘ্য, উপস্থিতি, সঠিকতা ইত্যাদি যাচাই।
  5. Callbacks:
    • ActiveRecord বিভিন্ন ধরনের callbacks প্রদান করে, যেমন before_save, after_create, before_update ইত্যাদি, যা ডেটাবেস রেকর্ড তৈরি বা আপডেট করার আগে বা পরে কার্যকর হতে পারে।

ActiveRecord এর উদাহরণ

ধরা যাক, আমাদের একটি User টেবিল রয়েছে, যেখানে আমরা ব্যবহারকারীদের নাম, ইমেইল এবং বয়স সংরক্ষণ করি। ActiveRecord ব্যবহার করে আমরা এই টেবিলের সাথে ডেটা ম্যানিপুলেশন করতে পারি।

১. Model Definition (মডেল ডিফিনিশন)

ActiveRecord এর মাধ্যমে একটি ক্লাস তৈরি করে আমরা User টেবিলের সাথে যোগাযোগ করতে পারি। এই ক্লাসটি ActiveRecord::Base থেকে ইনহেরিট করবে, যা মডেল ক্লাসকে ডেটাবেসের সাথে সংযুক্ত করে।

class User < ActiveRecord::Base
  # এখানে মডেল ভ্যালিডেশন, অ্যাসোসিয়েশন ইত্যাদি যুক্ত করা যায়
end

এখানে, User ক্লাসটি ActiveRecord::Base থেকে ইনহেরিট করছে, যার ফলে আমরা User ক্লাসের ইনস্ট্যান্সের মাধ্যমে users টেবিলের রেকর্ড ম্যানিপুলেট করতে পারব।

২. Create (ডেটা তৈরি করা)

user = User.new(name: "John Doe", email: "john@example.com", age: 30)
user.save

এখানে, User.new ব্যবহার করে একটি নতুন User অবজেক্ট তৈরি করা হয়েছে এবং তারপরে save মেথড ব্যবহার করে তা ডেটাবেসে সেভ করা হয়েছে।

৩. Read (ডেটা পড়া)

user = User.find(1)  # ID 1 সহ প্রথম রেকর্ড পাওয়া যাবে
puts user.name       # আউটপুট: John Doe

এখানে, User.find(1) ব্যবহার করে আমরা ID ১ সহ একটি ব্যবহারকারীকে খুঁজে পেয়েছি এবং তার নাম প্রদর্শন করেছি।

৪. Update (ডেটা আপডেট করা)

user = User.find(1)
user.update(name: "Jane Doe")  # নাম পরিবর্তন করা

এখানে, user.update ব্যবহার করে আমরা একটি ব্যবহারকারীর নাম পরিবর্তন করেছি এবং তা ডেটাবেসে সংরক্ষণ করেছি।

৫. Delete (ডেটা মুছে ফেলা)

user = User.find(1)
user.destroy  # রেকর্ডটি ডেটাবেস থেকে মুছে ফেলা হবে

এখানে, user.destroy ব্যবহার করে আমরা একটি ব্যবহারকারী রেকর্ড ডেটাবেস থেকে মুছে ফেলেছি।


ActiveRecord Associations (অ্যাসোসিয়েশন)

ActiveRecord এর অ্যাসোসিয়েশনগুলো ক্লাসগুলোর মধ্যে সম্পর্ক স্থাপন করতে ব্যবহৃত হয়। কিছু সাধারণ অ্যাসোসিয়েশন হলো:

  1. has_many: এক ক্লাসের একাধিক রেকর্ডের সাথে সম্পর্ক।
  2. belongs_to: এক রেকর্ডের একটি সম্পর্ক অন্য রেকর্ডের সাথে।
  3. has_one: এক রেকর্ডের সাথে এক রেকর্ডের সম্পর্ক।
  4. has_and_belongs_to_many: একাধিক রেকর্ডের মধ্যে সম্পর্ক।

উদাহরণ:

class Author < ActiveRecord::Base
  has_many :books  # একজন লেখকের অনেক বই থাকতে পারে
end

class Book < ActiveRecord::Base
  belongs_to :author  # একটি বই একমাত্র লেখকের হতে পারে
end

এখানে, Author এবং Book ক্লাসগুলোর মধ্যে সম্পর্ক তৈরি করা হয়েছে। একটি লেখকের অনেক বই থাকতে পারে, এবং একটি বই একটি লেখকের সাথে সম্পর্কিত।


Validations (ভ্যালিডেশন)

ActiveRecord মডেলগুলিতে validations যোগ করে আপনি ইনপুট ডেটার সঠিকতা নিশ্চিত করতে পারেন। কিছু সাধারণ ভ্যালিডেশন হলো:

  • validates_presence_of: একটি ফিল্ডের উপস্থিতি যাচাই করা।
  • validates_uniqueness_of: একটি ফিল্ডের অদ্বিতীয়তা যাচাই করা।
  • validates_numericality_of: একটি ফিল্ডের সংখ্যাগত মান যাচাই করা।

উদাহরণ:

class User < ActiveRecord::Base
  validates_presence_of :name, :email  # name এবং email ফিল্ড অবশ্যই পূর্ণ থাকতে হবে
  validates_uniqueness_of :email       # email ফিল্ডের মান অনন্য হতে হবে
end

এখানে, validates_presence_of এবং validates_uniqueness_of ব্যবহার করে আমরা নিশ্চিত করেছি যে নাম এবং ইমেইল উপস্থিত থাকতে হবে এবং ইমেইলটি ইউনিক (অদ্বিতীয়) হতে হবে।


Callbacks (কলব্যাকস)

ActiveRecord কলব্যাকস আপনাকে নির্দিষ্ট সময় বা ডেটাবেস অপারেশনের আগে বা পরে কোড চালানোর সুযোগ দেয়। কিছু সাধারণ কলব্যাকস হলো:

  • before_save: রেকর্ডটি সেভ করার আগে কার্যকর হয়।
  • after_create: রেকর্ডটি তৈরি হওয়ার পরে কার্যকর হয়।

উদাহরণ:

class User < ActiveRecord::Base
  before_save :capitalize_name

  def capitalize_name
    self.name = self.name.capitalize
  end
end

এখানে, before_save কলব্যাক ব্যবহার করে আমরা রেকর্ড সেভ করার আগে ব্যবহারকারীর নামের প্রথম অক্ষরটি বড় হাতের অক্ষরে পরিবর্তন করেছি।


সারসংক্ষেপ

  • ActiveRecord রুবি অন রেলসের ORM ফিচার যা ডেটাবেসের সাথে কোডের যোগাযোগ সরল করে তোলে।
  • এটি CRUD (Create, Read, Update, Delete) অপারেশনগুলো সহজভাবে করার সুযোগ দেয়।
  • Associations, Validations, এবং Callbacks এর মাধ্যমে ডেটা সম্পর্কিত কাজ সহজ এবং কার্যকরী হয়।
  • method_missing এবং dynamic methods এর মাধ্যমে ডেটা এবং মেথড ম্যানিপুলেশন আরও নমনীয় হয়।

ActiveRecord রুবি অন রেলসের শক্তিশালী ORM সিস্টেম, যা ডেটাবেসের সাথে মিথস্ক্রিয়া এবং কার্যকরী কোড লেখার প্রক্রিয়াকে অনেক সহজ এবং দ্রুত করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...