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 ছোট ভিউ উপাদান তৈরি করে যা একাধিক ভিউতে পুনঃব্যবহার করা যায়। এটি কোডের পুনঃব্যবহারযোগ্যতা এবং পারফরম্যান্স উন্নত করতে সহায়ক।
Read more