Rails: Как добавить заголовок на каждую страницу
-
04-10-2019 - |
Вопрос
Какой стандартный способ добавить заголовок и нижний колонтитул каждому представлению в приложении Rails?
Решение
Если этот файл найден, он будет использоваться.
Приложение / Просмотры / Макеты / Application.html.erb
<!doctype html>
<html>
<head>
<!-- stuff -->
</head>
<body>
<!-- this is where content will be rendered -->
<%= yield %>
</body>
</html>
В противном случае вы можете позвонить в другой.
# app/controllers/birds_controller.rb
class BirdsController < ApplicationController
layout :birds # looks for app/views/layouts/birds.html.erb
# ...
end
Другие советы
Положите заголовок и нижний колонтитуру в планировку приложения, которые можно найти в Приложение / Просмотры / Макеты / Application.html.erb. Вы, возможно, должны сначала создать этот файл.
Чтобы добавить любой код «Boiterplate» для всех страниц, используйте файл макета. Обычно он находится в приложении / представлениях / макетах /.
Создайте страницу, поскольку вы будете с любыми другими Rails View. В общем, это хорошая идея, чтобы разместить <html>
, body
, и т. Д. Теги внутри макета, чтобы избежать повторения.
В месте, где вы хотите, чтобы содержание от индивидуальных представлений появится, положить в <% yield %>
ярлык. Из-за блочного синтаксиса Ruby's Block And Progliss реализует макеты, это позволит любому представлению, контроллер которого указывает этот макет для «наследует» всей макета и вставить только контент на странице.
Чтобы использовать макет глобально, назовите файл Application.html.erb или укажите опцию Render: Maxout.
Вы найдете файлы макета вашего приложения в app/views/layouts/
.
Создайте общее приложение для макета / представления / макеты / .html.erb ', как сказал X1A4. И внутри того, что вы можете создать свой заголовок и нижний колонтитул
Если вы хотите, вы можете сделать это как два частица и вызов внутри файла макета. Но если у вас есть только один макет, вам может не понадобиться
Наличие заголовка и нижнего колонтитула в частных случаях имеют смысл, если у вас 2-3 типов макета (например, для обычных пользователей, администраторы и т. Д.)
и в ваших контроллерах сразу после декларации класса
Класс UsersController <ApplicationController Layout 'Имя макета' end '
ура, самера