【发布时间】:2023-12-20 11:09:01
【问题描述】:
我网站的每个页面都有一个唯一的标题。当我觉得我可以使用布局和助手来完成此操作时,我会重复自己并将代码添加到多个页面。我将展示我的工作代码和我正在开发的失败的解决方案,我需要一些帮助
页面标题基本上是这种形式:
<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 %>
它有效,但我不想将这些 sn-ps 添加到每个页面的顶部...我也不想在每个页面上重复“我的公司名称 -”。我想开发一个解决方案,其中页面描述都填写在应用程序助手中,应用程序布局根据控制器和操作选择正确的。
我正在开发一个像下面这样的助手(由于各种原因失败了,我希望有人可以帮助我):
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 中的标题进行页面特定的更改,而不是修改每个页面。
【问题讨论】:
标签: ruby-on-rails conditional helper