Что стандартный путь состоит в том, чтобы добавить заголовок и нижний колонтитул к каждому представлению в приложении для направляющих?
Если этот файл найден, он будет использован.
<!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
Чтобы добавить любой «шаблонный» код на все страницы, используйте файл макета. Обычно он находится в app / views / layouts /.
Создайте страницу так же, как и с любым другим представлением Rails. В общем, рекомендуется размещать теги
, body
и т. Д. Внутри макета, чтобы избежать повторения.
В том месте, где вы хотите, чтобы отображался контент из отдельных представлений, вставьте тег <% yield%>
. Благодаря синтаксису блоков Ruby и способу реализации макетов в Rails это позволит любому представлению, чей контроллер задает этот макет, «наследовать» весь макет и вставлять только специфичное для страницы содержимое.
Чтобы использовать макет глобально, назовите файл application.html.erb или укажите опцию render: layout.
создайте общий макет 'app/views/layouts/.html.erb', как сказал x1a4. И внутри него вы можете создать header и footer
Если вы хотите, вы можете сделать это как два partials и вызвать внутри файла layout. Но если у вас только один макет, вам это может не понадобиться
наличие header и footer в partials имеет смысл, если у вас есть 2-3 типа макетов (например, для обычных пользователей, администраторов и т.д.)
и в ваших контроллерах сразу после объявления класса
class UsersController < ApplicationController layout 'имя макета' end
удачи, sameera
Файлы макета приложения находятся в app / views / layouts /
.
поместите верхний и нижний колонтитулы в макет приложения, который можно найти по адресу app / views / layouts / application.html.erb . Возможно, вам придется сначала создать этот файл .