Подтвердить что ты не робот

Rails: как добавить заголовок на каждую страницу

Каков стандартный способ добавления верхнего и нижнего колонтитула к каждому представлению в приложении Rails?

4b9b3361

Ответ 1

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

приложение/просмотров/макеты/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

Ответ 2

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

Ответ 3

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

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

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

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

Ответ 4

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

Ответ 5

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

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

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

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

class UsersController < ApplicationController  layout 'layout name' конец

веселит, Sameera