【问题标题】:Rails controller and action specific titles from application_helper来自 application_helper 的 Rails 控制器和动作特定标题
【发布时间】: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


    【解决方案1】:

    我不会推荐这个.. 我在一些项目中自己做了,但一段时间后最终在视图中指定了各个标题。如果您有一些更复杂的表单/工作流程,则不容易识别路径以及相关的操作...

    【讨论】:

      最近更新 更多