在Michael Hartl的Rails教程中,他建议你创建一个" Full Title"帮手如下:
module ApplicationHelper
# Returns the full title on a per-page basis.
def full_title(page_title = '')
base_title = "Ruby on Rails Tutorial Sample App"
if page_title.empty?
base_title
else
page_title + " | " + base_title
end
end
end
然后将以下内容添加到application.html.erb文件中:
<title><%= full_title(yield(:page_title)) %></title>
以上不是人类可读的,难以解析。这将更容易理解,并将封装在帮助程序中生成标题的完整逻辑。为什么不将yield移到帮助器中并使用类似的东西:
<title><%= full_title(:page_title) %></title>
是否存在反对放置&#34; yield&#34;的Ruby / Rails惯例?在帮助者中?
答案 0 :(得分:1)
目前还没有惯例,但你仍然可以改进一点
#application.html.erb
<head>
<title>Ruby on Rails Tutorial Sample App<%= yield :title %></title>
</head>
#application_helper.rb
def title(title)
content_for(:title) { " | #{title}" }
end
#Any page
<% title "My title" %>
#or a translation
<% title t("titles.my_title") %>