【问题标题】:Unable to set title for rails 4无法为 rails 4 设置标题
【发布时间】:2016-02-04 16:36:20
【问题描述】:

我参与了一个使用 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 实际上是 application.html.erb。固定

【问题讨论】:

    标签: html ruby-on-rails ruby erb


    【解决方案1】:

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

    <%- title "Whatever title you want to appear on this page" %>
    
    <h1>BleuEngine</h1>
    <p>Website for BleuEngine</p>
    

    您的视图中不需要 &lt;head&gt; 的东西,因为它应该在您的布局文件中。此外,您不需要&lt;body&gt; 标签,因为您的视图被插入到布局文件中&lt;%= yield %&gt; 行的body 标签之间。

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

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

    【讨论】:

    • 其实是application.html.erb,我打错了。
    • 感谢您的标准做法,您是正确的,我刚刚制作了一个小型一次性轨道应用程序来测试这一点。我明白我做了什么,谢谢!
    【解决方案2】:

    content_for?(:title) 返回一个布尔值,表示您是否有内容。
    它不返回实际内容。 yield(:title) 就是这样做的。

    改变

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

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

    【讨论】:

    • 这修复了它,我知道我做了什么。谢谢!
    猜你喜欢
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2012-07-21
    • 2021-09-13
    相关资源
    最近更新 更多