无法为 rails 4 设置标题

Unable to set title for rails 4

我一直在与 rails 一起学习 ruby 的个人项目,一切进展顺利。我已经开始过渡到完善和部署,并为您所在网站的哪个部分配置标题。我在 http://tinyurl.com/jzqmuw2 尝试了接受的解决方案,但我的标题仍然默认为我的项目名称干净。我已经查看了其他一些解决方案,其中一些还可以,但我不明白为什么这不起作用。

我在测试时在 ec2 micro t2 上使用 JRuby 9.0.4.0 (2.2.2) 和 openjdk 8。

相关代码:

${root}/homepage/index.html.erb

<!DOCTYPE html>

<head>
  <title>
    <%- title "BleuEngine" %>
  </title>
</head>

<body>
  <h1>BleuEngine</h1>
  <p>Website for BleuEngine</p>
</body>

${root}/app/helper/application_helper.rb

module ApplicationHelper
  # Setting titles for each page
  def title(page_title)
    content_for(:title) { page_title }
  end
end

${root}/app/views/layouts/application.html.erb

<!DOCTYPE html>
<html>
<head>
  <title><%= content_for?(:title) ? content_for?(:title) : "BleuEngine" %></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>

编辑: Layouts.html 实际上是应用程序。html.erb。固定

将您的 ${root}/homepage/index.html.erb 视图更改为:

<%- title "Whatever title you want to appear on this page" %>

<h1>BleuEngine</h1>
<p>Website for BleuEngine</p>

您的视图中不需要 <head> 内容,因为它应该在您的布局文件中。此外,您不需要 <body> 标签,因为您的视图插入在布局文件中 <%= yield %> 行的 body 标签之间。

最后,将标题行添加到布局文件 ${root}/app/views/layouts/application.html.erb 的 Head 部分以呈现标题。

<title><%= content_for?(:title) ? yield(:title) : "BleuEngine" %></title>

content_for?(:title) return 是否有内容的布尔值。
它不是 return 实际内容。 yield(:title) 这样做。

改变

<title><%= content_for?(:title) ? content_for?(:title) : "BleuEngine" %></title>

<title><%= content_for?(:title) ? yield(:title) : "BleuEngine" %></title>