উত্তর:
আপনার দৃষ্টিতে এ জাতীয় কিছু করুন:
<% content_for :title, "Title for specific page" %>
<!-- or -->
<h1><%= content_for(:title, "Title for specific page") %></h1>
নিম্নলিখিত লেআউট ফাইলে যায়:
<head>
<title><%= yield(:title) %></title>
<!-- Additional header tags here -->
</head>
<body>
<!-- If all pages contain a headline tag, it's preferable to put that in the layout file too -->
<h1><%= yield(:title) %></h1>
</body>
এছাড়া encapsulate করতে সম্ভব content_for
এবং yield(:title)
সাহায্যকারী পদ্ধতিতে বিবৃতি (যেমন অন্যদের ইতিমধ্যে পরামর্শ দিয়েছেন)। তবে সাধারণ ক্ষেত্রে যেমন কাস্টম সহায়ক ছাড়া নির্দিষ্ট কোডগুলিতে সরাসরি প্রয়োজনীয় কোডটি রাখতে চাই।
<h1><%= content_for(:title, "Title for specific page") %></h1>
করি তখন আমি আমার ডোমটিতে কোনও আউটপুট দেখতে পাই না (যেমন আমার এতে <h1></h1>
কোনও সামগ্রী নেই)। তবে আমার <title>Title for specific page</title>
সঠিকভাবে কাজ করা হয়। কোন ধারনা?
এখানে আমি ব্যবহার করতে চাই একটি সহজ বিকল্প
আপনার বিন্যাসে
<head>
<title><%= @title %></title>
</head>
এবং আপনার পৃষ্ঠার টেমপ্লেটের শীর্ষে (প্রথম লাইন)
<% @title="Home" %>
যেভাবে লেআউটটি এবং পৃষ্ঠাগুলি টেমপ্লেটগুলি পার্স করা হচ্ছে তার কারণে @ শিরোনাম = "হোম" লেআউটটি রেন্ডার হওয়ার আগে মূল্যায়ন করা হবে।
সেরা অনুশীলন হ'ল কন্টেন্ট_ফর্ম ব্যবহার করা।
প্রথমে কয়েকটি সহায়ক পদ্ধতি যুক্ত করুন (যেমন অ্যাপ্লিকেশন / সহায়তা / অ্যাপ্লিকেশন_হেল্পার.আরবি তে আটকে):
def page_title(separator = " – ")
[content_for(:title), 'My Cool Site'].compact.join(separator)
end
def page_heading(title)
content_for(:title){ title }
content_tag(:h1, title)
end
তারপরে আপনার লেআউট ভিউতে আপনি কেবল ব্যবহার করতে পারেন:
<title><%= page_title %></title>
... এবং নিজেই দেখুন:
<%= page_heading "Awesome" %>
এই উপায়ে আপনি আপনার শিরোনামের জন্য এইচ 1 ট্যাগটি আটকে রাখার অনুমতি দেওয়ার সুবিধা রয়েছে এবং আপনার নিয়ামকটিকে সুন্দর এবং পেস্কি @ টাইটেল ভেরিয়েবলগুলি মুক্ত রাখে।
@content_for_title
?
@content_for_title
। হওয়া উচিত (content_for(:title) + ' — ' if content_for?(:title)).to_s + 'My Cool Site'
। তারপরে এটি আপনার দর্শন থেকে সেট করতে, ঠিক<% content_for :title, 'My Page Title' %>
@content_for_title
আপনি যখন ব্যবহার করেছেন তখন কি ঘটেছিল content_for
, এই মন্তব্যটি লেখা হয়েছিল। আমি বিশ্বাস করি এটি এখন আর নেই, তবে আমি সম্প্রতি দেখিনি। টবি জে এর মন্তব্য আজকের রেলগুলির জন্য সঠিক। আমি আমার আসল উত্তরটি আপডেট করব।
উপর একটি উন্নতি @opsb এবং আরো একটি সম্পূর্ণ ফর্ম @FouZ এর:
ইন application.html.erb
:
<title><%= @title || "Default Page Title" %></title>
ভিউতে ইরব ফাইল বা এর নিয়ামক:
<% @title = "Unique Page Title" %>
এটি দেখুন content_for
: http://railscasts.com/episodes/8
আপনি যে ব্যবহারের ক্ষেত্রে বা প্রয়োজনীয়তাগুলি পূরণ করার চেষ্টা করছেন সে সম্পর্কে আরও বিশদ ছাড়াই আমি বেশ কয়েকটি বিকল্প সম্পর্কে ভাবতে পারি:
1) আপনার লেআউট পৃষ্ঠাগুলির একটিতে শিরোনামটি স্যুইচ করুন এবং এতে থাকা কোনও সহায়ক পদ্ধতি গ্রহণ করুন application_helper.rb
<title><%= custom_title %></title>
এই পদ্ধতির আপনাকে প্রতিটি বিন্যাস পৃষ্ঠার জন্য একটি অনন্য শিরোনাম দেবে।
2) রেইলকাস্টগুলি হেড ট্যাগগুলির মধ্যে যা প্রদর্শিত হবে তা লোড করতে একটি আংশিক ব্যবহারের পরামর্শ দেয়
3) লোড ইভেন্টের পরে যদি শিরোনাম পরিবর্তন করতে হয় তবে ডিওএমকে চালিত করতে জাভাস্ক্রিপ্ট / এজ্যাক্স কলগুলি ব্যবহার করুন।
হতে পারে আপনি title
উপাদান দ্বারা ট্যাগ করা সামগ্রীটি সত্যই পরিবর্তন করতে চান না । সম্ভবত আপনার কোনও ধরণের রুটির টুকরোগুলি প্রয়োজন, যাতে আপনার ব্যবহারকারীরা সর্বদা জানতে পারেন যে তারা আপনার সাইটের নেভিগেশন শ্রেণিবদ্ধের সাথে সম্মানজনকভাবে কোথায়। আমি কীভাবে সোনারবার্গ প্লাগইনটি দিয়ে দুর্দান্ত কাজ করেছি, আমি নিশ্চিত যে একই কার্যকারিতাটি বন্ধ করার অন্যান্য উপায় রয়েছে।
আমি নিফটি_জেনারেটরটির "নিফ্টি_লেআউট" ব্যবহার করি যা একটি শিরোনাম ভেরিয়েবল সরবরাহ করে যা আমি পৃষ্ঠায় কল করতে পারি তা ব্যবহার করে:
<% title "Title of page" %>
আমি ব্যবহারকারীর <% title "Title of page", false %>
শিরোনামটি কেবল ব্রাউজার শিরোনামে প্রদর্শন করতে পারি এবং পৃষ্ঠায় নয়।
আপনি এটিকে আপনার নিয়ামকের একটি পূর্ব_ ফিল্টারটিতে সেট করতে পারেন।
# foo_controller.rb
class FooController < ApplicationController
before_filter :set_title
private
def set_title
@page_title = "Foo Page"
end
end
# application.html.erb
<h1><%= page_title %></h1>
তারপরে আপনি নিয়ামকের বিভিন্ন ক্রিয়াকলাপের জন্য আলাদা আলাদা শিরোনাম সেট করার জন্য set_title পদ্ধতিতে শর্তাদি সেট করতে পারেন । আপনার নিয়ামকের মধ্যে সমস্ত প্রাসঙ্গিক পৃষ্ঠার শিরোনাম দেখতে সক্ষম হওয়ায় ভাল লাগছে।
আমি ব্যবহার করি এই প্লাগইনএই রেলস সাহায্যকারীদের আমি লিখেছি: http://web.archive.org/web/20130117090719/http://henrik.nyh.se/2007/11/my-rails-title-helpers/
বিষয়বস্তু_পদ্ধতি এবং একটি আংশিক ব্যবহার করে পৃষ্ঠা শিরোনামের জন্য যোগাযোগ করুন
ঘ। আংশিক নাম: _page_title.html.erb
<%content_for :page_title do %>
<%=title%>
<%end%>
ঘ। অ্যাপ্লিকেশন html.erb শিরোনাম ট্যাগ ভিতরে ব্যবহার
<title><%=yield :page_title %></title>
ঘ। অ্যাপ্লিকেশন html.erb বাদে সম্পর্কিত * .html.erb ব্যবহার করুন পৃষ্ঠার কোনও html.erb এবং সরবরাহের শিরোনামে এটি কেবল আটকে দিন
e.g : inside index.html.erb
<%=render '_page_title', title: 'title_of_page'%>
সংক্ষেপে, আমি নিম্নলিখিত হিসাবে এটি লিখতে পারেন
<%content_for :page_title do %><%= t :page_title, "Name of Your Page" %> <% end %>
আমি opsb এর পদ্ধতি পছন্দ করি তবে এই পদ্ধতিটিও কার্যকর হয়।
<% provide(:title,"ttttttttttttttttttZ") %>
<html>
<head><title><%= yield(:title) %></title></head>
<body></body>
</html>
আমি আমার বেশ সহজ রূপটি যুক্ত করতে চাই।
অ্যাপ্লিকেশনকন্ট্রোলারে এই পদ্ধতিটি সংজ্ঞায়িত করুন:
def get_title
@action_title_name || case controller_name
when 'djs'
'Djs'
when 'photos'
'Photos'
when 'events'
'Various events'
when 'static'
'Info'
when 'club'
'My club'
when 'news'
'News'
when 'welcome'
'Welcome!'
else
'Other'
end
end
এর পরে আপনি আপনার লেআউটের শিরোনাম ট্যাগ থেকে get_title কল করতে পারেন। আপনি নিজের ক্রিয়ায় @action_title_name পরিবর্তনশীল সংজ্ঞায়িত করে আপনার পৃষ্ঠার জন্য আরও সুনির্দিষ্ট শিরোনামটি সংজ্ঞায়িত করতে পারেন।
<title><%= (yield(:title) + " - " unless yield(:title).blank?).to_s + "This is always shown" %></title>
বিন্যাসে এবং<% content_for :title, "Conditional title" %>
ভিউগুলিতে।