2016-02-04 3 views
1

Я был на личном проекте, изучая рубин с рельсами, и все прошло неплохо. Я начал переходить на полирование и развертывание, а также настраивать заголовки, для которых часть вашего веб-сайта вы используете. Я пробовал принятое решение по адресу: http://tinyurl.com/jzqmuw2, но мой заголовок по-прежнему не соответствует моему имени проекта, которое не является чистым. Я рассмотрел несколько других решений, и некоторые из них в порядке, но я не могу понять, почему это не работает.Невозможно установить заголовок для рельсов 4

Я использую JRuby 9.0.4.0 (2.2.2) с openjdk 8 на ec2 micro t2 во время проверки.

Соответствующий код:

$ {корень} /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 

$ {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> 

EDIT: Layouts.html был фактически application.html.erb. Неподвижные

ответ

2

Изменить ваши $ {корень} /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, чтобы отобразить заголовок.

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

Это на самом деле application.html.erb, я неправильно набранный его. – BleuGamer

+0

Спасибо за стандартную практику, вы правы там, где должна быть голова, я просто сделал небольшое одноразовое приложение для проверки этого бита. Я вижу, что я сделал, спасибо! – BleuGamer

1

content_for?(:title) возвращает булево говоря, если у вас есть содержание или нет.
Он не возвращает фактическое содержание. yield(:title) делает.

Изменить

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

в

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

Это исправлено, и я вижу, что я сделал. Благодаря! – BleuGamer

Смежные вопросы