Ruby on Rails এর View হলো একটি অংশ যা ইউজারের সাথে যোগাযোগের জন্য তথ্য প্রদর্শন করে। এটি সাধারণত HTML এবং Ruby কোডের মিশ্রণ ব্যবহার করে, যেখানে ERB (Embedded Ruby) একটি টেমপ্লেট ইঞ্জিন হিসেবে কাজ করে। ERB এর মাধ্যমে Ruby কোড HTML ফাইলে এম্বেড করা যায়, যাতে ডাইনামিক কনটেন্ট তৈরি করা যায়।
View এর ভূমিকা
Rails অ্যাপ্লিকেশনে View মূলত কন্ট্রোলার থেকে প্রাপ্ত ডেটাকে ফ্রন্ট-এ প্রদর্শন করার জন্য কাজ করে। View-এ সাধারণত HTML, CSS, এবং JavaScript থাকে, কিন্তু ERB টেমপ্লেট ইঞ্জিন ব্যবহার করে আপনি Ruby কোডও লেখতে পারেন, যা ডাইনামিক কনটেন্ট তৈরি করতে সহায়তা করে।
View সাধারণত কন্ট্রোলারের অ্যাকশন থেকে ডেটা নেয় এবং তা ইউজার ইন্টারফেসে উপস্থাপন করে।
ERB (Embedded Ruby) কী?
ERB (Embedded Ruby) হল Ruby কোড HTML ফাইলের মধ্যে এম্বেড করার একটি উপায়। এটি Ruby কোডকে <% %> এর মধ্যে র্যাপ করে এবং HTML কনটেন্টের সাথে একত্রিত করে। ERB টেমপ্লেট ইঞ্জিন Rails-এ সবচেয়ে জনপ্রিয় এবং ডিফল্ট টেমপ্লেট ইঞ্জিন হিসেবে ব্যবহৃত হয়।
ERB টেমপ্লেটের মাধ্যমে আপনি ডাইনামিক কনটেন্ট যেমন ডেটাবেস থেকে পাওয়া তথ্য বা কন্ট্রোলারের ভ্যারিয়েবল ভিউ-তে উপস্থাপন করতে পারেন।
ERB টেমপ্লেটের মৌলিক কাঠামো
ERB টেমপ্লেট HTML এর সাথে Ruby কোড এম্বেড করার জন্য কয়েকটি মৌলিক সেন্ট্যাক্স প্রদান করে। এর মধ্যে প্রধান সেন্ট্যাক্সগুলো হলো:
১. Ruby কোডের এক্সিকিউশন
<%= %>
এটি Ruby কোড এক্সিকিউট করতে ব্যবহৃত হয় এবং কোডের আউটপুট HTML কনটেন্টের অংশ হিসেবে রেন্ডার হয়। উদাহরণস্বরূপ:
<%= @user.name %>
এটি @user ভ্যারিয়েবলের name ফিল্ডের মান দেখাবে।
২. Ruby কোডের অগ্রগতি (Control Flow)
<% %>
এটি Ruby কোডের লজিক বা কন্ট্রোল ফ্লো (যেমন লুপ, কন্ডিশনাল স্টেটমেন্ট) প্রয়োগ করতে ব্যবহৃত হয়, কিন্তু এর আউটপুট HTML-এ রেন্ডার হয় না। উদাহরণ:
<% if @user.active? %>
<p>User is active</p>
<% else %>
<p>User is inactive</p>
<% end %>
৩. Ruby কোডের লুপ
<% @users.each do |user| %>
<p><%= user.name %></p>
<% end %>
এটি একটি লুপের মাধ্যমে একাধিক ইউজারের নাম প্রদর্শন করবে।
৪. রিলেটিভ লিংক তৈরি করা
<%= link_to 'Home', root_path %>
এটি root_path এ লিংক তৈরি করবে, যেখানে 'Home' টেক্সট ক্লিক করলে ডিফল্ট রুট পেজে রিডাইরেক্ট হবে।
ERB এ কিছু জনপ্রিয় ফিচার
১. বিভিন্ন ধরনের কন্ডিশনাল স্টেটমেন্ট
<% if @user.admin? %>
<p>Welcome, admin!</p>
<% else %>
<p>Welcome, regular user!</p>
<% end %>
এটি ইউজারের অ্যাডমিন অবস্থান অনুযায়ী ডিফারেন্ট মেসেজ শো করবে।
২. লুপ ব্যবহার
<% @articles.each do |article| %>
<p><%= article.title %></p>
<p><%= article.body %></p>
<% end %>
এটি একাধিক আর্টিকেলের শিরোনাম এবং বডি প্রদর্শন করবে।
৩. Partial Rendering
Partials হল ছোট টেমপ্লেট যা অ্যাপ্লিকেশনের বিভিন্ন অংশে পুনরায় ব্যবহার করা যেতে পারে। এটি কোড পুনঃব্যবহারযোগ্য এবং সঞ্চিত রাখতে সাহায্য করে।
<%= render 'shared/header' %>
এখানে, shared/_header.html.erb ফাইলটি রেন্ডার করা হবে। পারশিয়াল ফাইলগুলো সাধারণত একটি আন্ডারস্কোর (_) দিয়ে শুরু হয়।
৪. Form Helper Methods
Rails এ ফর্ম তৈরি করার জন্য অনেকগুলো helper methods রয়েছে, যেমন:
<%= form_for @user do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.submit 'Save' %>
<% end %>
এটি একটি ফর্ম তৈরি করবে যেখানে name ফিল্ড থাকবে এবং এটি @user অবজেক্টের সাথে সম্পর্কিত হবে।
View এবং Controller এর সম্পর্ক
Views এবং Controllers এর মধ্যে একটি গুরুত্বপূর্ণ সম্পর্ক রয়েছে। Controllers অ্যাকশন দ্বারা ডেটা প্রাপ্ত করে এবং সেই ডেটা Views এ প্রেরণ করে। উদাহরণ:
Controller:
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
end
View (show.html.erb):
<h1><%= @user.name %></h1>
<p>Email: <%= @user.email %></p>
এখানে, UsersController এর show অ্যাকশনে @user ভ্যারিয়েবল থেকে ডেটা নেওয়া হয়েছে এবং তা show.html.erb ভিউ ফাইলে প্রদর্শিত হচ্ছে।
সারমর্ম
Rails এ View এবং ERB এর মধ্যে একটি শক্তিশালী সম্পর্ক রয়েছে যা ডাইনামিক কনটেন্ট তৈরি এবং ইউজার ইন্টারফেসে প্রদর্শন করতে সাহায্য করে। ERB (Embedded Ruby) টেমপ্লেট ইঞ্জিন ব্যবহার করে আপনি Ruby কোড HTML এর মধ্যে এম্বেড করতে পারেন, যার মাধ্যমে ডেটাবেস থেকে প্রাপ্ত তথ্য বা কন্ট্রোলারের ভ্যারিয়েবল ভিউ-তে প্রদর্শিত হয়। ERB এর মাধ্যমে আপনি কন্ট্রোল ফ্লো, লুপ, পারশিয়াল রেন্ডারিং, ফর্ম হেল্পার মেথড ব্যবহার করতে পারেন, যা Rails অ্যাপ্লিকেশন ডেভেলপমেন্টকে আরও নমনীয় এবং কার্যকরী করে তোলে।
Ruby on Rails এ View হল একটি গুরুত্বপূর্ণ অংশ যা ইউজারের ইন্টারফেস (UI) তৈরি করতে ব্যবহৃত হয়। View গুলি মূলত HTML, CSS এবং JavaScript দিয়ে তৈরি হয়, এবং এগুলো ইউজারের জন্য অ্যাপ্লিকেশন এর আউটপুট প্রদর্শন করে। Rails অ্যাপ্লিকেশনটিতে, View সাধারণত কন্ট্রোলার থেকে ডেটা পায় এবং সেই ডেটাকে ইউজার-প্রত্যাখ্যানযোগ্য ফরম্যাটে প্রদর্শন করে।
View এর ভূমিকা
View হল MVC (Model-View-Controller) আর্কিটেকচারের একটি অংশ। এটি ইউজারের সাথে সরাসরি যোগাযোগ করে এবং ডেটাবেস বা ব্যবসায়িক লজিকের সাথে সম্পর্কিত না হয়ে শুধুমাত্র ডেটা প্রেজেন্টেশন এবং ইউজারের ইন্টারফেস (UI) তৈরি করে।
View এর প্রধান দায়িত্বগুলো:
- ডেটা প্রদর্শন: কন্ট্রোলার থেকে প্রাপ্ত ডেটাকে HTML ফরম্যাটে রেন্ডার করা।
- ইন্টারেক্টিভ ইন্টারফেস তৈরি: ইউজার ইনপুট এবং অন্যান্য ইন্টারঅ্যাকশন গ্রহণ করা (যেমন ফর্মের মাধ্যমে ডেটা গ্রহণ করা)।
- UI উপাদান গঠন: HTML, CSS, JavaScript এবং অন্যান্য ফ্রন্টএন্ড টুলসের মাধ্যমে অ্যাপ্লিকেশনের ইউজার ইন্টারফেস ডিজাইন করা।
Rails অ্যাপ্লিকেশন এ, View ফাইলগুলো সাধারণত .html.erb এক্সটেনশনে থাকে, যেখানে erb হল Embedded Ruby, যা Ruby কোডকে HTML এর মধ্যে এম্বেড করতে সাহায্য করে।
ERB (Embedded Ruby) কী?
ERB (Embedded Ruby) হল একটি টেমপ্লেট সিস্টেম যা Ruby কোডকে HTML ফাইলে এম্বেড করার জন্য ব্যবহৃত হয়। এটি একটি ফরম্যাট যা Ruby কোডকে HTML ট্যাগের মধ্যে অন্তর্ভুক্ত করতে সক্ষম, ফলে আপনি HTML কোডে ডাইনামিক ডেটা প্রদর্শন করতে পারেন।
ERB ফাইলগুলো .erb এক্সটেনশন দিয়ে চিহ্নিত করা হয়, এবং Rails অ্যাপ্লিকেশনগুলিতে এগুলো View হিসাবে ব্যবহৃত হয়। এর মাধ্যমে Ruby কোড এবং HTML কোড একত্রে লেখা সম্ভব, যা ডেটাকে ডাইনামিকভাবে রেন্ডার করে।
ERB এর ব্যবহার:
ERB কোড ব্লক সাধারণত <% %> এর মধ্যে লেখা হয়। এর দুটি প্রধান ফর্ম আছে:
- উৎপন্ন কোড (Outputting Code): HTML-এ ডেটা প্রিন্ট করতে
=<% %>ব্যবহার করা হয়। - Ruby কোড ব্লক: সাধারণ Ruby কোড চালাতে
<% %>ব্যবহার করা হয়।
উদাহরণ:
ধরা যাক, আমাদের একটি User মডেল আছে এবং আমরা ইউজারদের নামকে View তে প্রদর্শন করতে চাই।
<!-- app/views/users/show.html.erb -->
<h1>User Profile</h1>
<p>Name: <%= @user.name %></p>
<p>Email: <%= @user.email %></p>
এখানে:
<%= @user.name %>: এটি@user.nameএর মানকে HTML এ প্রদর্শন করবে। এই অংশে Ruby কোড রয়েছে যা ইউজারের নামকে ডেটাবেস থেকে নিয়ে এসে HTML এ ইনজেক্ট করে।<% %>: এটি শুধুমাত্র Ruby কোড চালাতে ব্যবহৃত হয়, যেমন লজিক্যাল ব্লক।
আরও উদাহরণ:
লুপ ব্যবহার করে ডেটা রেন্ডার করা:
<ul> <% @users.each do |user| %> <li><%= user.name %></li> <% end %> </ul>এই কোডটি
@usersঅ্যারে থেকে প্রত্যেকটিuserঅবজেক্টের নামকে একটি তালিকায় প্রদর্শন করবে।শর্ত দিয়ে HTML রেন্ডার করা:
<% if @user.active? %> <p>Welcome back, <%= @user.name %>!</p> <% else %> <p>Your account is inactive.</p> <% end %>এখানে, Ruby কোডের মাধ্যমে শর্ত নির্ধারণ করে, যদি
@userঅ্যাকটিভ থাকে তবে "Welcome back" বার্তা দেখানো হবে, অন্যথায় "Your account is inactive" বার্তা প্রদর্শিত হবে।
View ফাইলের কাঠামো
Rails অ্যাপ্লিকেশনে View ফাইলগুলো সাধারণত app/views/ ডিরেক্টরির মধ্যে থাকে। প্রতিটি কন্ট্রোলারের জন্য একটি সাবডিরেক্টরি থাকে যেখানে তার সংশ্লিষ্ট ভিউ ফাইলগুলো রাখা হয়।
উদাহরণ:
যদি আপনার একটি UsersController থাকে, তাহলে তার ভিউ ফাইলগুলো সাধারণত app/views/users/ ফোল্ডারে থাকবে, যেমন:
app/views/users/index.html.erb(ইউজার লিস্টের জন্য)app/views/users/show.html.erb(একটি ইউজারের প্রোফাইল দেখানোর জন্য)
সারমর্ম
Rails অ্যাপ্লিকেশনে View এর ভূমিকা হল ইউজারের ইন্টারফেস তৈরি করা এবং কন্ট্রোলার থেকে প্রাপ্ত ডেটাকে HTML ফরম্যাটে রেন্ডার করা। ERB হল একটি টেমপ্লেট সিস্টেম যা Ruby কোডকে HTML ফাইলের মধ্যে এম্বেড করতে ব্যবহৃত হয়। ERB এর মাধ্যমে আপনি Ruby কোড ব্যবহার করে ডাইনামিক কনটেন্ট প্রজেন্টেশন করতে পারেন, যেমন ডেটা রেন্ডার করা, লুপ ব্যবহার করা এবং শর্ত অনুসারে কনটেন্ট প্রদর্শন করা। Rails এর View এবং ERB ব্যবস্থাপনা UI ডিজাইন এবং ডেটা প্রেজেন্টেশনকে সহজ এবং কার্যকরী করে তোলে।
Ruby on Rails-এ HTML এবং ERB (Embedded Ruby) এর সংমিশ্রণ ব্যবহার করা হয় ওয়েব পৃষ্ঠাগুলোর ডাইনামিক কন্টেন্ট তৈরি করতে। HTML হচ্ছে স্ট্যাটিক কন্টেন্টের জন্য, এবং ERB ব্যবহৃত হয় Ruby কোডকে HTML-এর মধ্যে এমবেড (এনকোড) করার জন্য। এটি ডেভেলপারদের ডাইনামিক ওয়েব পেজ তৈরি করতে সহায়তা করে, যেখানে কন্টেন্ট চলতি ডেটার উপর ভিত্তি করে পরিবর্তিত হতে পারে।
ERB কী?
ERB (Embedded Ruby) হল Ruby কোডকে HTML এর মধ্যে এমবেড (ইনলাইন) করার একটি প্রক্রিয়া। ERB ফাইলগুলি সাধারণত .html.erb এক্সটেনশনে থাকে এবং এটি HTML পেজে Ruby কোড যুক্ত করতে ব্যবহৃত হয়। Ruby কোডের মাধ্যমে ডাইনামিক কন্টেন্ট জেনারেট করা সম্ভব হয়।
ERB টেমপ্লেটের মধ্যে Ruby কোড চালানোর জন্য <%= %> বা <% %> সাইন ব্যবহার করা হয়:
<%= %>: Ruby কোড কার্যকর করে এবং আউটপুটকে HTML-এর মধ্যে এমবেড করে।<% %>: Ruby কোড কার্যকর করে, কিন্তু আউটপুট HTML পেজে প্রদর্শন করা হয় না।
ERB সিনট্যাক্স
ডাইনামিক ডাটা ইনসার্ট করা: আপনি Ruby কোড ব্যবহার করে HTML টেমপ্লেটে ডাইনামিক ডাটা ইনসার্ট করতে পারেন:
<h1>Welcome, <%= @user.name %>!</h1>এখানে,
@user.nameএকটি Ruby ভেরিয়েবল যেটি ডাইনামিকভাবে ব্যবহারকারীর নাম দেখাবে।লজিক এবং কন্ডিশনাল স্টেটমেন্ট: ERB টেমপ্লেটে Ruby লজিক (যেমন if, else) ব্যবহার করা যায়:
<% if @user.admin? %> <p>Welcome, Admin!</p> <% else %> <p>Welcome, User!</p> <% end %>লুপিং: আপনি ডেটাবেস থেকে পাওয়া রেকর্ডগুলোর জন্য লুপ ব্যবহার করতে পারেন:
<ul> <% @posts.each do |post| %> <li><%= post.title %></li> <% end %> </ul>এখানে,
@posts.eachলুপে সমস্ত পোস্টের শিরোনাম প্রদর্শিত হবে।ফর্ম সাবমিট করা: Ruby on Rails-এর form_for এবং form_with হেল্পার মেথড ব্যবহার করে ফর্ম তৈরি করা যায়:
<%= form_for @user do |f| %> <%= f.label :name %> <%= f.text_field :name %> <%= f.submit %> <% end %>
HTML এবং ERB এর সংমিশ্রণ
Ruby on Rails অ্যাপ্লিকেশনে HTML এবং ERB একত্রে ব্যবহার করে একটি ডাইনামিক ওয়েব পেজ তৈরি করা হয়, যেখানে HTML মূল কাঠামো এবং ERB ডাইনামিক কন্টেন্ট প্রক্রিয়া করে। Rails রাউটিং এবং কন্ট্রোলারের মাধ্যমে ডেটা এক্সেস করা হয় এবং সেই ডেটা HTML পেজে প্রদর্শিত হয় ERB টেমপ্লেটের মাধ্যমে।
উদাহরণ:
ধরা যাক, আপনার একটি User মডেল এবং একটি কন্ট্রোলার রয়েছে, যেখানে আপনি index অ্যাকশনে সকল ব্যবহারকারীদের তালিকা প্রদর্শন করতে চান।
Controller (UsersController):
class UsersController < ApplicationController def index @users = User.all end endView (index.html.erb):
<h1>All Users</h1> <ul> <% @users.each do |user| %> <li><%= user.name %> - <%= user.email %></li> <% end %> </ul>
এখানে, @users.each লুপের মাধ্যমে সব ব্যবহারকারীর নাম এবং ইমেইল HTML তালিকায় প্রদর্শিত হবে।
HTML, ERB এবং Partial Views
Rails এ partial views ব্যবহৃত হয় পুনঃব্যবহারযোগ্য HTML টেমপ্লেট তৈরি করতে। এটি বড় ভিউ টেমপ্লেটগুলোকে ছোট ছোট অংশে ভাগ করতে সাহায্য করে। Partial ব্যবহার করতে হলে, _ দিয়ে ফাইলের নাম শুরু করতে হয়।
Partial Example:
Partial (user.html.erb):
<div class="user"> <h2><%= user.name %></h2> <p><%= user.email %></p> </div>Main View (index.html.erb):
<h1>All Users</h1> <% @users.each do |user| %> <%= render 'user', user: user %> <% end %>
এখানে, render 'user' কমান্ডটি user.html.erb পার্সেল দেখাবে এবং @user অবজেক্টটি ব্যবহার করবে। এটি কোডের পুনঃব্যবহারযোগ্যতা এবং সংগঠন উন্নত করে।
HTML এবং ERB এর ব্যবহারিক প্রযোজন
HTML এবং ERB এর সংমিশ্রণ আপনাকে ডাইনামিক ওয়েব পেজ তৈরি করতে সহায়তা করে। এটি এক্সপ্রেসিভ, পারফেক্ট ও রিচ ইউজার ইন্টারফেস তৈরি করতে ব্যবহৃত হয়। ERB কোড ব্যবহার করে আপনি সিস্টেমের ডেটা এবং ইউজারের ইনপুট অনুযায়ী কন্টেন্ট পরিবর্তন করতে পারেন, যা স্ট্যাটিক HTML-এর তুলনায় অনেক বেশি শক্তিশালী।
সারমর্ম
HTML এবং ERB এর সংমিশ্রণ Ruby on Rails-এর ওয়েব ডেভেলপমেন্টের একটি গুরুত্বপূর্ণ অংশ। ERB-এর মাধ্যমে Ruby কোডকে HTML-এর মধ্যে এমবেড করে ডাইনামিক কন্টেন্ট তৈরি করা হয়। Rails টেমপ্লেট ইঞ্জিন ERB ব্যবহার করে ডাইনামিক ডাটা প্রদর্শন, কন্ডিশনাল লজিক প্রয়োগ, লুপিং, এবং ফর্ম তৈরি করা সহজ হয়। এর ফলে, HTML স্ট্রাকচার এবং Ruby কোড একত্রে ব্যবহারের মাধ্যমে শক্তিশালী এবং ইন্টারেক্টিভ ওয়েব অ্যাপ্লিকেশন তৈরি করা সম্ভব হয়।
Ruby on Rails এ Layouts এবং Partials দুটি গুরুত্বপূর্ণ কনসেপ্ট যা অ্যাপ্লিকেশনটির ভিউগুলোর কাঠামো এবং পুনঃব্যবহারযোগ্যতা উন্নত করতে ব্যবহৃত হয়।
- Layouts হল অ্যাপ্লিকেশনের পুরো পৃষ্ঠার স্ট্রাকচার, যা সাধারণত হেডার, ফুটার, সাইডবার, এবং অন্যান্য সাধারণ উপাদানগুলোকে ধারণ করে।
- Partials হল ছোট ছোট ভিউ টেমপ্লেট যা পুনঃব্যবহারযোগ্য উপাদান হিসেবে কাজ করে, যেমন একটি ফর্ম, লিস্ট, টেবিল বা অন্য কোন অংশ।
Layouts কী এবং কিভাবে কাজ করে?
Layouts মূলত অ্যাপ্লিকেশনের শাখাগুলির জন্য একটি সাধারণ কাঠামো সরবরাহ করে, যেখানে পৃষ্ঠার প্রতিটি ভিউ একটি নির্দিষ্ট স্থান নিবে। প্রতিটি ভিউ একটি সাধারণ application.html.erb (বা .html.haml বা .html.slim যদি HAML বা Slim টেমপ্লেট ইঞ্জিন ব্যবহার করা হয়) লেআউট ফাইলের মধ্যে রেন্ডার হয়।
Layouts তৈরি করা
Rails অ্যাপ্লিকেশন সাধারণত app/views/layouts/application.html.erb ফাইলে application লেআউট তৈরি করে। এই ফাইলটি সমস্ত ভিউ রেন্ডার করার সময় ব্যবহার করা হয়, যদি না অন্য কোন লেআউট নির্দিষ্ট করা হয়।
application.html.erb:
<!DOCTYPE html>
<html>
<head>
<title>My Rails App</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_pack_tag 'application' %>
</head>
<body>
<header>
<h1>Welcome to My Rails App</h1>
<nav>
<%= link_to 'Home', root_path %>
<%= link_to 'About', about_path %>
</nav>
</header>
<div class="content">
<%= yield %> <!-- এখানে মূল কন্টেন্ট রেন্ডার হবে -->
</div>
<footer>
<p>© 2024 My Rails App</p>
</footer>
</body>
</html>
এখানে, <%= yield %> ট্যাগটি সেই জায়গা যেখানে অ্যাপ্লিকেশনের সমস্ত কন্টেন্ট রেন্ডার হবে। এটি মূল কন্টেন্ট (যেমন index.html.erb, show.html.erb) এখানে বসবে।
Layout পরিবর্তন করা
প্রতিটি কন্ট্রোলারের জন্য পৃথক লেআউট ব্যবহার করতে চাইলে, কন্ট্রোলার এর layout মেথড ব্যবহার করতে পারেন:
class ArticlesController < ApplicationController
layout "custom_layout" # এটি custom_layout.html.erb ফাইলটি ব্যবহার করবে
end
এছাড়া, আপনি অ্যাকশনভিত্তিক লেআউটও নির্ধারণ করতে পারেন:
class ArticlesController < ApplicationController
layout :choose_layout
def choose_layout
if action_name == "new"
"special_layout"
else
"application"
end
end
end
এখানে choose_layout মেথডটি নির্ধারণ করবে কোন লেআউট ব্যবহার করা হবে নির্দিষ্ট অ্যাকশন অনুযায়ী।
Partials কী এবং কিভাবে কাজ করে?
Partials হলো ভিউ টেমপ্লেটের ছোট ছোট অংশ যা সাধারণত একটি নির্দিষ্ট ফাংশনালিটি বা UI উপাদান প্রতিনিধিত্ব করে। Partials সাধারণত ডুপ্লিকেট কোড এড়ানোর জন্য ব্যবহৃত হয় এবং একাধিক ভিউ ফাইলে পুনঃব্যবহার করা যায়।
Partials তৈরি করা
Rails-এ Partial তৈরি করতে, _ (আন্ডারস্কোর) দিয়ে ফাইলের নাম শুরু করতে হয়। উদাহরণস্বরূপ, একটি form partial তৈরি করতে:
_form.html.erb:
<%= form_with(model: @article, local: true) do |form| %>
<% if @article.errors.any? %>
<div class="errors">
<h2><%= pluralize(@article.errors.count, "error") %> prohibited this article from being saved:</h2>
<ul>
<% @article.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div>
<%= form.label :title %>
<%= form.text_field :title %>
</div>
<div>
<%= form.label :body %>
<%= form.text_area :body %>
</div>
<div>
<%= form.submit %>
</div>
<% end %>
এই form partial টি অন্যান্য ভিউ ফাইলে ব্যবহার করা যেতে পারে, যেমন new.html.erb বা edit.html.erb।
Partials রেন্ডার করা
Partials ব্যবহার করতে, <%= render %> মেথড ব্যবহার করতে হয়:
new.html.erb:
<h1>Create a New Article</h1>
<%= render 'form' %>
এখানে, render 'form' কমান্ডটি _form.html.erb partialটি রেন্ডার করবে।
Partials এ প্যারামিটার পাঠানো
Partials এ ডেটা পাঠানোর জন্য, আপনি প্যারামিটার হিসেবে মান পাঠাতে পারেন:
<%= render 'form', article: @article %>
এটি _form.html.erb partial-এ article ভ্যারিয়েবল পাঠাবে।
_form.html.erb:
<%= form_with(model: article, local: true) do |form| %>
...
<% end %>
এভাবে, partials ভিউর মধ্যে ডাইনামিকভাবে ডেটা অন্তর্ভুক্ত করা হয়।
Partials ব্যবহার করার সুবিধা
- কোড পুনঃব্যবহারযোগ্যতা: একাধিক ভিউতে একই কোড ব্যবহার করা সম্ভব হয়।
- কোড সংগঠন: একটি বড় ভিউকে ছোট ছোট অংশে ভাগ করা যায়, যাতে কোড আরও পরিষ্কার এবং সহজে ম্যানেজ করা যায়।
- পারফরম্যান্স বৃদ্ধি: ছোট ছোট অংশ হিসেবে ভিউ ব্যবহারের ফলে পারফরম্যান্সও উন্নত হয়।
Layouts এবং Partials এর মধ্যে পার্থক্য
- Layouts সাধারণত পুরো পৃষ্ঠার কাঠামো নিয়ন্ত্রণ করে, যেমন হেডার, ফুটার এবং সাধারণ নেভিগেশন। এটি প্রতিটি ভিউর জন্য একই থাকে এবং ভিউ রেন্ডার হওয়ার জায়গা সরবরাহ করে।
- Partials হল ছোট ভিউ টেমপ্লেট অংশ, যা বিভিন্ন ভিউ ফাইলে পুনঃব্যবহার করা যায় এবং সাধারণত UI উপাদান বা ফর্ম অংশ তৈরি করতে ব্যবহৃত হয়।
সারমর্ম
Rails-এ Layouts এবং Partials ব্যবহৃত হয় অ্যাপ্লিকেশনের ভিউ কাঠামোকে পরিষ্কার, পুনঃব্যবহারযোগ্য এবং সহজতর করতে। Layouts মূল পৃষ্ঠার কাঠামো তৈরি করে এবং প্রতিটি ভিউকে একটি অভিন্ন পরিবেশে রেন্ডার করে, যখন Partials ছোট ভিউ উপাদান তৈরি করে যা একাধিক ভিউতে পুনঃব্যবহার করা যায়। এটি কোডের পুনঃব্যবহারযোগ্যতা এবং পারফরম্যান্স উন্নত করতে সহায়ক।
Ruby on Rails-এ View অংশটি মূলত ইউজার ইন্টারফেসের জন্য ব্যবহৃত হয়, যেখানে ইউজারদের কাছে ডেটা প্রদর্শন করা হয়। Data Binding এবং Helper Methods এই অংশের দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ডেটা প্রদর্শন এবং ইউজারের ইন্টারঅ্যাকশনের মাধ্যমে কার্যকরী ও দক্ষ ওয়েব অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে।
Data Binding in Rails View
Data Binding হলো একটি প্রক্রিয়া যার মাধ্যমে Controller থেকে প্রাপ্ত ডেটা View-এ প্রদর্শিত হয়। Rails এ, ভিউতে ডেটা প্রদর্শনের জন্য সাধারণত Embedded Ruby (ERB) টেমপ্লেট ব্যবহার করা হয়। ERB ফাইলগুলো .html.erb এক্সটেনশনে সংরক্ষিত থাকে, যেখানে Ruby কোড HTML এর মধ্যে এম্বেড করা থাকে।
Data Binding এর মৌলিক উপাদান:
Rails-এ Data Binding সহজভাবে করা হয় যেখানে ডেটা কন্ট্রোলার থেকে ভিউতে সরাসরি অ্যাক্সেস করা যায়।
ধরা যাক, আমাদের একটি Product মডেল রয়েছে, যার ডেটা কন্ট্রোলারের মাধ্যমে ভিউতে পাঠানো হচ্ছে। কন্ট্রোলারে ডেটা প্রেরণের উদাহরণ:
# products_controller.rb
class ProductsController < ApplicationController
def show
@product = Product.find(params[:id])
end
end
এখানে, @product ভেরিয়েবলটি কন্ট্রোলার থেকে ভিউতে পাঠানো হয়েছে। এরপরে, এই ডেটা View এ প্রদর্শন করা যেতে পারে:
<!-- show.html.erb -->
<h1><%= @product.name %></h1>
<p><%= @product.description %></p>
<p>Price: $<%= @product.price %></p>
এখানে <%= @product.name %> এবং অন্যান্য Ruby কোলের মাধ্যমে ডেটা ভিউতে প্রিন্ট করা হচ্ছে। এইভাবে, কন্ট্রোলার থেকে পাঠানো ডেটা ভিউতে ব্যাবহার করা যায়।
Dynamic Data Rendering:
Collections: Rails অ্যাপ্লিকেশনে যদি একাধিক রেকর্ড ভিউতে প্রদর্শন করতে হয়, তবে
eachলুপ ব্যবহার করা হয়:<!-- index.html.erb --> <ul> <% @products.each do |product| %> <li><%= product.name %> - <%= product.price %></li> <% end %> </ul>এই উদাহরণে, সব
Productরেকর্ডের নাম ও মূল্য প্রদর্শিত হবে।
Helper Methods ব্যবহার
Helper Methods হল সেই সমস্ত মেথড, যেগুলো ভিউ-তে ব্যবহার করা যেতে পারে এবং যেগুলি সাধারণত কোডের পুনরাবৃত্তি কমাতে সহায়তা করে। Rails এ ভিউ-এর জন্য হেল্পার মেথড তৈরি করা এবং ব্যবহার করা খুবই সহজ।
Helper Method তৈরি করা
Rails-এ, আপনি Helper ফাইলগুলিতে মেথড তৈরি করতে পারেন, যা তারপর আপনার ভিউতে ব্যবহৃত হতে পারে। উদাহরণস্বরূপ, যদি আপনি একটি বিশেষ ফরম্যাটে তারিখ প্রদর্শন করতে চান, তাহলে একটি হেল্পার মেথড তৈরি করতে পারেন।
# app/helpers/products_helper.rb
module ProductsHelper
def formatted_price(price)
number_to_currency(price, unit: "$")
end
end
এখানে, formatted_price মেথডটি একটি দাম গ্রহণ করে এবং তা ডলার সাইনসহ ফরম্যাট করে। এই হেল্পার মেথডটি আপনি ভিউতে ব্যবহার করতে পারেন:
<!-- show.html.erb -->
<p>Price: <%= formatted_price(@product.price) %></p>
এটি @product.price এর মূল্য কে ডলার সাইন সহ প্রদর্শন করবে।
Rails Built-in Helpers
Rails অনেকগুলি বিল্ট-ইন হেল্পার প্রদান করে, যা ভিউতে সহায়ক হতে পারে। কয়েকটি জনপ্রিয় built-in helper:
- number_to_currency: একটি সংখ্যাকে মুদ্রার ফরম্যাটে রূপান্তর করে।
- link_to: হাইপারলিঙ্ক তৈরি করে।
- image_tag: ছবি দেখানোর জন্য HTML ট্যাগ তৈরি করে।
- form_for: ফর্ম তৈরি করতে ব্যবহৃত হয়।
উদাহরণ:
<!-- index.html.erb -->
<%= link_to 'Show Product', product_path(product) %>
এটি একটি লিংক তৈরি করবে যা ব্যবহারকারীকে নির্দিষ্ট পণ্যের বিস্তারিত পৃষ্ঠায় নিয়ে যাবে।
Helper Methods এর অন্যান্য ব্যবহার
Conditional Rendering: যদি কিছু শর্তে ডেটা বা কন্টেন্ট প্রদর্শন করতে চান, তাহলে হেল্পার মেথড ব্যবহার করা যেতে পারে।
# app/helpers/application_helper.rb module ApplicationHelper def display_price(price) if price > 0 number_to_currency(price, unit: "$") else "Price not available" end end endএরপরে, এটি ভিউতে ব্যবহার করা যাবে:
<p>Price: <%= display_price(@product.price) %></p>Partial Rendering: একাধিক ভিউতে একই কন্টেন্ট প্রদর্শন করতে
partialব্যবহার করা যায়, যা কোডের পুনরাবৃত্তি কমায়।উদাহরণ:
<!-- _product.html.erb (Partial) --> <div class="product"> <h2><%= product.name %></h2> <p><%= product.price %></p> </div> <!-- index.html.erb --> <%= render partial: "product", collection: @products %>এটি
@productsএর সমস্ত পণ্যের জন্য_product.html.erbপ্যার্টিয়াল রেন্ডার করবে।
সারমর্ম
Ruby on Rails-এ Data Binding এবং Helper Methods ব্যবহার করে ভিউতে ডেটা প্রদর্শন এবং ইউজার ইন্টারফেসে কার্যকারিতা যোগ করা সহজ হয়। Data Binding এর মাধ্যমে কন্ট্রোলার থেকে ভিউতে ডেটা সরাসরি পাঠানো যায় এবং ERB টেমপ্লেটের মাধ্যমে তা প্রদর্শন করা হয়। Helper Methods ব্যবহার করে পুনরাবৃত্তি কমানো, কাস্টম ফর্ম্যাটিং এবং কন্ডিশনাল রেন্ডারিং করা যায়। Rails এর বিল্ট-ইন হেল্পার মেথডগুলি ইউজার ইন্টারফেসে উন্নতি আনতে সাহায্য করে, এবং পার্শিয়াল রেন্ডারিংয়ের মাধ্যমে কোডের পুনঃব্যবহারযোগ্যতা নিশ্চিত করা হয়।
Read more