Направляющие: как добавить заголовок к каждой странице

Что стандартный путь состоит в том, чтобы добавить заголовок и нижний колонтитул к каждому представлению в приложении для направляющих?

18
задан marsty5 16 December 2015 в 15:49
поделиться

5 ответов

Если этот файл найден, он будет использован.

app / views / layouts / 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
26
ответ дан 30 November 2019 в 07:08
поделиться

Чтобы добавить любой «шаблонный» код на все страницы, используйте файл макета. Обычно он находится в app / views / layouts /.

Создайте страницу так же, как и с любым другим представлением Rails. В общем, рекомендуется размещать теги , body и т. Д. Внутри макета, чтобы избежать повторения.

В том месте, где вы хотите, чтобы отображался контент из отдельных представлений, вставьте тег <% yield%> . Благодаря синтаксису блоков Ruby и способу реализации макетов в Rails это позволит любому представлению, чей контроллер задает этот макет, «наследовать» весь макет и вставлять только специфичное для страницы содержимое.

Чтобы использовать макет глобально, назовите файл application.html.erb или укажите опцию render: layout.

3
ответ дан 30 November 2019 в 07:08
поделиться

создайте общий макет 'app/views/layouts/.html.erb', как сказал x1a4. И внутри него вы можете создать header и footer

Если вы хотите, вы можете сделать это как два partials и вызвать внутри файла layout. Но если у вас только один макет, вам это может не понадобиться

наличие header и footer в partials имеет смысл, если у вас есть 2-3 типа макетов (например, для обычных пользователей, администраторов и т.д.)

и в ваших контроллерах сразу после объявления класса

class UsersController < ApplicationController layout 'имя макета' end

удачи, sameera

1
ответ дан 30 November 2019 в 07:08
поделиться

Файлы макета приложения находятся в app / views / layouts / .

1
ответ дан 30 November 2019 в 07:08
поделиться

поместите верхний и нижний колонтитулы в макет приложения, который можно найти по адресу app / views / layouts / application.html.erb . Возможно, вам придется сначала создать этот файл .

9
ответ дан 30 November 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: