首先,我想告诉大家我是初学者,我开始开发项目。在开发这个项目时,我打算学习。
我的问题是如何只为索引页设置标题?现在,我以这种方式根据页面自定义我的标题:
这是布局
<!DOCTYPE html>
<html>
<head>
<title><%= full_title(yield(:title)) %></title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
这是帮手
# Returns the full title on a per-page basis.
def full_title(page_title = '')
base_title = 'Site Name Here'
if page_title.empty?
base_title
else
"#{page_title} | #{base_title}"
end
end
我在每一页都这样说。当然根据页面关于我们的变化。
<% provide(:title, 'About Us') %>
因此,当我访问页面时,标题是关于我们|网站名称在这里 或者当我访问faq页面时,标题是常见问题|网站名称
并且根据我的帮助,如果我不在索引页面中提供标题,则帮助者填写将标题设置为&#34;站点名称&#34;。所以,一切都很完美。但我想做的是改变索引的标题。我想将欢迎添加到我的网站中。如果我提供:标题,标题就像&#34;欢迎来到我的网站|网站名称&#34;。所以我不想要&#34; |网站名称&#34;那里。
我希望我能很好地解释我的问题。谢谢您的帮助。如果它是PHP,我可以检查我在帮助器中的哪个页面,如果它是索引,我可以回显我想要的标题,但我不知道如何在rails中执行。
答案 0 :(得分:2)
您可以尝试使用controller_name
和action_name
作为条件来定位相关控制器的索引操作。使用和elsif
语句只返回page_title
而不是base_title
:
# Returns the full title on a per-page basis.
def full_title(page_title = '')
base_title = 'Site Name Here'
if page_title.empty?
base_title
elsif controller_name == 'hello' && action_name == 'index'
"#{page_title}"
else
"#{page_title} | #{base_title}"
end
end
如果有效,请告诉我。