我网站的每个页面都有一个唯一的标题。当我觉得我可以用布局和帮助器做这个时,我正在重复自己并将代码添加到多个页面。我将展示我的工作代码和我正在开发的解决方案,这是失败的,我需要一些帮助
页面标题基本上是这种形式:
<title>Company Name - Page Description</title>
现在我的布局就是这样:
<%= content_for?(:page_title) ? yield(:page_title) : default_page_title %>
我有一个像这样的应用程序帮助方法:
def default_page_title
content_tag(:title, 'My Company Name - the default description here')
end
然后每个页面都有这样的内容:
<% content_for(:page_title) do %>
<%= content_tag(:title,'My Company Name - Page specific description here') %>
<% end %>
它有效,但我不想将这些片段添加到每个页面的顶部...我也不想在每个页面上重复“我的公司名称 - ”。我想开发一个解决方案,其中页面描述都在应用程序助手中填写,应用程序布局根据控制器和操作选择正确的。
我正在做一个像下面这样的帮手(因各种原因而失败,我希望有人可以帮助我):
def page_title
content_tag(:title, "My Company Name - " + page_description )
def page_description
case params[:controller].params[:action]
while public.index
'Description for public controller index action'
while public.contact
'Description for public controller contact action'
end
end
end
这将允许我在application_helper中对标题进行页面特定的更改,而不是修改每个页面。
答案 0 :(得分:1)
我不会推荐这个..我在一些项目中自己做了,但是在一段时间后结束了视图中指定的个别标题。如果你有一些更复杂的表格/工作流程,那就不容易识别路径和哪些动作是相关的......