如何只为索引页面设置标题?

时间:2015-07-10 20:24:03

标签: ruby-on-rails ruby-on-rails-4

首先,我想告诉大家我是初学者,我开始开发项目。在开发这个项目时,我打算学习。

我的问题是如何只为索引页设置标题?现在,我以这种方式根据页面自定义我的标题:

这是布局

<!DOCTYPE html>
<html>
<head>
  <title><%= full_title(yield(:title)) %></title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

这是帮手

  # Returns the full title on a per-page basis.
  def full_title(page_title = '')
    base_title = 'Site Name Here'
    if page_title.empty?
      base_title
    else
      "#{page_title} | #{base_title}"
    end
  end

我在每一页都这样说。当然根据页面关于我们的变化。

<% provide(:title, 'About Us') %>

因此,当我访问页面时,标题是关于我们|网站名称在这里 或者当我访问faq页面时,标题是常见问题|网站名称

并且根据我的帮助,如果我不在索引页面中提供标题,则帮助者填写将标题设置为&#34;站点名称&#34;。所以,一切都很完美。但我想做的是改变索引的标题。我想将欢迎添加到我的网站中。如果我提供:标题,标题就像&#34;欢迎来到我的网站|网站名称&#34;。所以我不想要&#34; |网站名称&#34;那里。

我希望我能很好地解释我的问题。谢谢您的帮助。如果它是PHP,我可以检查我在帮助器中的哪个页面,如果它是索引,我可以回显我想要的标题,但我不知道如何在rails中执行。

1 个答案:

答案 0 :(得分:2)

您可以尝试使用controller_nameaction_name作为条件来定位相关控制器的索引操作。使用和elsif语句只返回page_title而不是base_title

# Returns the full title on a per-page basis.
  def full_title(page_title = '')
    base_title = 'Site Name Here'
    if page_title.empty?
      base_title
    elsif controller_name == 'hello' && action_name == 'index'
      "#{page_title}"
    else
      "#{page_title} | #{base_title}"
    end
  end

如果有效,请告诉我。