如何为不同页面设置不同的title

<title>ABCD</title>
这部分代码一般放在layout file中。其结果是所有的页面都使用相同的title, 这样不利于别人检索到你的网页。那么如何在不同的页面显示不同的title呢?

一.
我们先来看第一种方法,就是上一篇文章介绍的content_for 方法,
<% content_for :title do %>Recent Episodes<% end %>
然后在layout中:
<title>ASCIIcasts - <%= yield :title %></title>

但是这种做法不好的地方在于,每个页面都要有content_for 这个block才行。

二.
第二种方法就是使用实例变量,在controller中定义的实例变量是可以在template中自由使用的,当然,此处我们的实例变量可以直接在template中定义。
<% @page_title = "Recent Episodes" %>
然后在layout中:
<title>ASCIIcasts - <%= @page_title %></title>

三.
还有更好的方法,既然我们每个页面都会用到,那么不妨将content_for 做成一个方法,放在application_helpr.rb 中,
1. module ApplicationHelper
2. def title(page_title)
3. content_for(:title) { page_title }
4. end
5. end

这样,在每个template中,只需要调用这个方法,
1. <% title "Recent Episodes" %>
然后在layout中:
<title>ASCIIcasts - <%= yield :title %></title>
就可以了。
当然,如果你想有一个默认的title,那么可以使用:
<title>ASCIIcasts - <%= yield :title || “video.to_s”%></title>
这样,如果页面没有定义title,就会使用默认的title了

如果每一页都要在网页上显示出这个title来,那么显然显示title的html代码也是放在layout中最好了。

1. <div class="main">
2. <h2><%= yield(:title) %></h2>
3. <%= yield %>
4. </div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值