Controller তৈরি এবং Action Methods

Rails Routing এবং Controller - রুবি অন রেইল (Ruby on Rails) - Web Development

307

Controller হলো Ruby on Rails অ্যাপ্লিকেশনের একটি গুরুত্বপূর্ণ অংশ, যা ব্যবহারকারীর রিকোয়েস্ট প্রক্রিয়াকরণ করে এবং সংশ্লিষ্ট ডেটা নিয়ে ভিউতে পাঠায়। প্রতিটি Action Method একটি নির্দিষ্ট কাজ করে এবং রিকোয়েস্টের প্রতিক্রিয়া হিসেবে ইউজারের কাছে রেসপন্স পাঠায়।


Controller তৈরি করা

Rails এ একটি Controller তৈরি করতে rails generate controller কমান্ড ব্যবহার করা হয়। এই কমান্ডটি স্বয়ংক্রিয়ভাবে একটি নতুন কন্ট্রোলার ফাইল তৈরি করে, যেখানে আপনার বিভিন্ন অ্যাকশন সংজ্ঞায়িত করা যাবে।

Controller তৈরি করার উদাহরণ:

ধরা যাক, আপনি একটি "Posts" কন্ট্রোলার তৈরি করতে চান:

rails generate controller Posts

এই কমান্ডটি একটি posts_controller.rb ফাইল তৈরি করবে এবং এই ফাইলের মধ্যে কিছু ডিফল্ট অ্যাকশন থাকবে (যেমন: index, show, new, create, edit, update, destroy)।


Controller এর মূল অংশ

1. Controller Class

প্রত্যেকটি কন্ট্রোলার একটি Ruby ক্লাসের মাধ্যমে সংজ্ঞায়িত হয়, যা ApplicationController থেকে ইনহেরিট করে।

class PostsController < ApplicationController
  # অ্যাকশন মেথডের মধ্যে আপনার লজিক থাকবে
end

2. Action Methods

Action Methods হলো controller এর ফাংশন যা ইউজারের রিকোয়েস্ট অনুযায়ী বিভিন্ন কাজ করে এবং ভিউতে ডেটা পাঠায়। প্রতিটি অ্যাকশন একটি HTTP রিকোয়েস্টের জন্য দায়ী, যেমন GET, POST, PATCH, DELETE ইত্যাদি।

ধরা যাক, PostsController এ একটি index অ্যাকশন আছে, যা সব পোস্ট প্রদর্শন করবে।

class PostsController < ApplicationController
  def index
    @posts = Post.all
  end
end

এখানে @posts হলো একটি instance ভেরিয়েবল, যা views/posts/index.html.erb ভিউতে ব্যবহার করা যাবে।


বিভিন্ন Action Methods

index: সব রিসোর্সের তালিকা প্রদর্শন করে।

def index
  @posts = Post.all
end

show: একটি নির্দিষ্ট রিসোর্স প্রদর্শন করে।

def show
  @post = Post.find(params[:id])
end

new: নতুন রিসোর্স তৈরি করার জন্য ফর্ম প্রদর্শন করে।

def new
  @post = Post.new
end

create: নতুন রিসোর্স তৈরি করে ডেটাবেসে সংরক্ষণ করে।

def create
  @post = Post.new(post_params)
  if @post.save
    redirect_to @post
  else
    render 'new'
  end
end

edit: একটি রিসোর্সের তথ্য এডিট করার জন্য ফর্ম প্রদর্শন করে।

def edit
  @post = Post.find(params[:id])
end

update: একটি রিসোর্স আপডেট করে ডেটাবেসে সংরক্ষণ করে।

def update
  @post = Post.find(params[:id])
  if @post.update(post_params)
    redirect_to @post
  else
    render 'edit'
  end
end

destroy: একটি রিসোর্স মুছে ফেলে।

def destroy
  @post = Post.find(params[:id])
  @post.destroy
  redirect_to posts_path
end

Strong Parameters

Rails এ Strong Parameters ব্যবহার করা হয় যাতে অ্যাকশনে নিরাপদভাবে ডেটা পাস করা যায়। উদাহরণস্বরূপ, create বা update অ্যাকশনে ডেটা সুরক্ষিতভাবে গ্রহণ করতে post_params মেথড ব্যবহার করা হয়।

private
def post_params
  params.require(:post).permit(:title, :body)
end

এখানে params.require(:post).permit(:title, :body) শুধুমাত্র title এবং body পারামিটার গ্রহণ করতে দেবে, অন্য কোন ফিল্ড গ্রহণ করবে না।


রাউটিং এবং Controller

Rails এর রাউটিং ফাইল (config/routes.rb) কন্ট্রোলারের অ্যাকশনগুলির সাথে রিকোয়েস্টের ম্যাপিং নির্ধারণ করে।

Rails.application.routes.draw do
  resources :posts
end

এই কমান্ডটি কন্ট্রোলারের সাধারণ CRUD অ্যাকশনগুলির জন্য রাউট তৈরি করবে, যেমন posts#index, posts#show, posts#new, posts#create, posts#edit, posts#update, এবং posts#destroy


সারমর্ম

Ruby on Rails এ Controller এবং Action Methods অ্যাপ্লিকেশনের লজিক এবং ইউজারের রিকোয়েস্ট প্রক্রিয়াকরণে গুরুত্বপূর্ণ ভূমিকা পালন করে। কন্ট্রোলার বিভিন্ন অ্যাকশন মেথডের মাধ্যমে ডেটাবেস থেকে ডেটা রিট্রিভ করে এবং সেগুলো ভিউতে পাঠায়, যেখানে ইউজারদের জন্য উপস্থাপন করা হয়। Rails এ সঠিক রাউটিং এবং Strong Parameters ব্যবহারের মাধ্যমে নিরাপদ এবং কার্যকর ওয়েব অ্যাপ্লিকেশন তৈরি করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...