来自application_helper的Rails控制器和操作特定标题

时间:2013-01-21 15:13:31

标签: ruby-on-rails conditional helper

我网站的每个页面都有一个唯一的标题。当我觉得我可以用布局和帮助器做这个时,我正在重复自己并将代码添加到多个页面。我将展示我的工作代码和我正在开发的解决方案,这是失败的,我需要一些帮助

页面标题基本上是这种形式:

<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中对标题进行页面特定的更改,而不是修改每个页面。

1 个答案:

答案 0 :(得分:1)

我不会推荐这个..我在一些项目中自己做了,但是在一段时间后结束了视图中指定的个别标题。如果你有一些更复杂的表格/工作流程,那就不容易识别路径和哪些动作是相关的......