Что означает эрб?


132

Почему вид приложения Rails находится в формате *.erb.html? Что значит «эрб»?

Ответы:


164

erb означает «Встроенный RuBy». Файл A .html.erbor .erb.html- это HTML со встроенным кодом Ruby; Rails оценит Ruby для динамического добавления содержимого в файл и выведет «чистый» HTML-файл для рендеринга.


9
Бонус: вы также можете добавить в смесь свою локаль: index.en.html.erb и index.de.html.erb
iain

3
хромой, они должны удалить html. Вы не видите html.php
luckyguy73

46

Как уже упоминал @Chowlett, erb означает Embedded Ruby . Когда вы определяете какой-либо файл как «.html.erb», это означает, что это HTML-файл со встроенным в него кодом ruby, и он похож на расширение «.rhtml» файла rails.

Вы можете увидеть подробную и приятную разницу между ".html.erb" и ".rhtml". Нажмите здесь

Как и ".rhtml", вы также можете переименовать расширение ".rjs" в ".js.erb" или ".rxml" на ".xml.erb"

Этот формат отделяет тип контента от механизма шаблонов, которым в данном случае является "erb".


1
Спасибо @khanh за то, что оценил мой ответ :)
Нимеш Никум

9

Из книги Стюарта Эллиса « Введение в шаблоны ERB» :

ERB (Embedded RuBy) - это функция Ruby, которая позволяет вам удобно генерировать любой текст в любом количестве из шаблонов. Сами шаблоны объединяют простой текст с кодом Ruby для подстановки переменных и управления потоком, что упрощает их создание и сопровождение.

Хотя ERB чаще всего используется для создания веб-страниц, он также используется для создания XML-документов, RSS-каналов, исходного кода и других форм структурированных текстовых файлов. Это может быть чрезвычайно полезно, когда вам нужно создать файлы, которые содержат много повторений стандартного шаблона, например, комплектов модульных тестов.

Основным компонентом ERB является библиотека, которую вы можете вызывать в своих приложениях Ruby и задачах Rake. Эта библиотека принимает любую строку в качестве шаблона и не накладывает ограничений на источник шаблона. Вы можете полностью определить шаблон в своем коде или сохранить его во внешнем расположении и при необходимости загрузить. Это означает, что вы можете хранить шаблоны в файлах, базах данных SQL или любом другом хранилище, которое вы хотите использовать.

Дистрибутивы Ruby также включают утилиту командной строки, которая позволяет обрабатывать шаблоны, хранящиеся в файлах, без написания какого-либо дополнительного кода. По логике, эта утилита называется erb.

ERB является частью стандартной библиотеки Ruby. Для его использования не нужно устанавливать какое-либо другое программное обеспечение.

Исходная статья содержит более подробную информацию и краткое руководство по использованию ERB. Вы также можете прочитать официальную документацию .


Примечание: указанный выше блок был ранее опубликован в качестве ответа другим пользователем без ссылки на Введение в шаблоны ERB и без подтверждения того, что это не работа этого пользователя. Этот пост был (справедливо) удален за плагиат. Тем не менее, я подумал, что это полезный ответ, поэтому я повторно разместил цитату, указав правильную атрибуцию Стюарта Эллиса, первоначального автора.


5

Встроенный Ruby, также называемый ERb, является основной системой шаблонов для включения динамического содержимого на веб-страницы. - Майкл Хертль


4

from template-format Файл, содержащий шаблон ERB, может иметь любое имя, но по соглашению имя файла должно заканчиваться расширением .erb. Rails требует, чтобы файлы шаблонов имели расширение типа вывода, за которым следует .erb, так что имя типа layout.html.erb указывает на шаблон HTML.

Файлы erb будут просто выводить текст. Ничего более. Какой текст будет в зависимости от сочетания статического текста и кода ruby ​​внутри файла. Вы можете использовать erb для генерации html, который используется по умолчанию в Rails, потому что это то, что нужно браузерам для отображения страницы.

В Ruby есть определенные значения по умолчанию. Одно значение по умолчанию заключается в том, что контроллер отображает HTML-страницу. Но вы можете легко заставить его отвечать с помощью .xml, .json или .csv, если вы напишете для него веб-API.

Erb - это библиотечный класс, который генерирует текст. Ничего более. Он ожидает файл, содержащий смешанный статический текст и код ruby. Он запустит код ruby ​​и запишет результат в другой файл, который в случае ваших контроллеров будет html.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.