我一直在用铁轨学习ruby的个人项目,事情进展顺利。我已经开始过渡到优化和部署,并为您所在的网站部分配置标题。我在http://tinyurl.com/jzqmuw2处尝试了已接受的解决方案,但我的标题仍默认为我的项目名称不干净。我已经看了一些其他的解决方案,其中一些是可以的,但我无法弄清楚为什么这不起作用。
在我测试的时候,我在ec2 micro t2上使用JRuby 9.0.4.0(2.2.2)和openjdk 8。
相关代码:
$ {根} /homepage/index.html.erb
<!DOCTYPE html>
<head>
<title>
<%- title "BleuEngine" %>
</title>
</head>
<body>
<h1>BleuEngine</h1>
<p>Website for BleuEngine</p>
</body>
$ {根} /app/helper/application_helper.rb
module ApplicationHelper
# Setting titles for each page
def title(page_title)
content_for(:title) { page_title }
end
end
$ {根} /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实际上是application.html.erb。固定
答案 0 :(得分:2)
将$ {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 %>
行中的正文标记之间插入的。
最后,将标题行添加到布局文件$ {root} /app/views/layouts/application.html.erb的Head部分以呈现标题。
<title><%= content_for?(:title) ? yield(:title) : "BleuEngine" %></title>
答案 1 :(得分:1)
content_for?(:title)
会返回一个布尔说明
它不会返回实际内容。 yield(:title)
就是这么做的。
更改
<title><%= content_for?(:title) ? content_for?(:title) : "BleuEngine" %></title>
到
<title><%= content_for?(:title) ? yield(:title) : "BleuEngine" %></title>