Может кто-нибудь, пожалуйста, опишите использование следующих символов, которые используются в файле ERB:
<% %>
<%= %>
<% -%>
<%# %>
какая польза от каждого?
Может кто-нибудь, пожалуйста, опишите использование следующих символов, которые используются в файле ERB:
<% %>
<%= %>
<% -%>
<%# %>
какая польза от каждого?
-%>
и stackoverflow.com/questions/3952403/… для<%=
, stackoverflow.com/questions/3901619/… для<%#
.<%= %>
и<%= -%>
отличаются: только последний удаляет конечные пробелы.Ответы:
Выполняет код рубина в скобках.
Печатает что-то в файл erb.
Предотвращает разрыв строки после выражения.
Комментирует код в скобках; не отправляется клиенту (в отличие от комментариев HTML).
Посетите Ruby Doc для получения дополнительной информации о ERB.
источник
<%#
это просто нормально<%
с комментарием Ruby#
сразу после него ... Да, забавно думать, что это что-то особенное, но разве это не просто идиома ERB, а не специальная синтаксическая конструкция?<%...%>
,<%#...%>
комментарии из всех его, что он не будет делать , если это был просто нормальный комментарий (т.е. было бы только закомментировать строку это включено).<% %>
и<%- and -%>
для любого кода Ruby, но не выводит результаты (например, операторы if). два одинаковы.<%= %>
для вывода результатов кода Ruby<%# %>
это комментарий ERBВот хорошее руководство: http://api.rubyonrails.org/classes/ActionView/Base.html
источник
<%-
что-то делает для пробелов, и я не вижу, чтобы это было документировано. Вы уверены, что? Может быть, это другой вкус ERB. Там нет опций, показанных для этого в документации stdlib.Rails делает не использовать в Еврорадио STDLIB по по умолчанию, он использует erubis . Источники: комментарий этого разработчика , gemspec ActionView , принял запрос на слияние, который я сделал, когда писал это .
Там являются поведенческие различия между ними, в частности , о том , как операторы дефис
%-
и-%
работы.Документация недостаточна. Где официально определен формат ERB в Ruby? так что ниже приведены эмпирические выводы.
Все тесты предполагают:
Когда вы можете использовать
-
-
кtrim_mode
вариантуERB.new
его использования.Примеры:
Что
-%
делает:ERB: удалить следующий символ, если это новая строка.
erubis:
в
<% %>
(без=
),-
бесполезен, потому что<% %>
и<% -%>
одинаковы.<% %>
удаляет текущую строку, если она содержит только пробелы, и ничего не делает иначе.в
<%= -%>
(с=
):Примеры:
Что
%-
делает:ERB: удалить пробелы перед тегом и после предыдущих новых строк, но только если до этого есть только пробелы.
erubis: бесполезно, потому что
<%- %>
это то же самое, что и<% %>
(без=
), и это нельзя использовать,=
что является единственным случаем, когда-%
может быть полезным. Так что никогда не используйте это.Примеры:
Чем
%-
и-%
занимаемся вместеТочная комбинация обоих эффектов в отдельности.
источник
<% %>
: Выполняет код рубина<%= %>
: Печать в файл Erb. Или браузер<% -%>
: Предотвращает разрыв строки после выражения.<%# %>
: Комментарий ERBисточник
Я добавил
<%%
буквальный тег-разделитель в качестве ответа на этот вопрос из-за его неясности. Это скажет erb не интерпретировать ту<%
часть тега, которая необходима для js-приложений, например отображение подсказок chart.js и т. Д.Обновление (исправлена неработающая ссылка)
Все о ERB теперь можно найти здесь: https://puppet.com/docs/puppet/5.3/lang_template_erb.html#tags
источник
Это использование в ruby на рельсах :
<%%>: -
Теги <%%> используются для выполнения кода Ruby, который ничего не возвращает, например, условия, циклы или блоки. Например: -
<% =%>: -
использовать для отображения содержимого.
<% -%>: -
Rails расширяет ERB, так что вы можете подавить новую строку, просто добавив конечный дефис к тегам в шаблонах Rails
<% #%>: -
закомментируйте код
источник
<% %>
выполняет код там, но не печатает результат, например:Мы можем использовать его для if if в файле erb.
Будет печатать
temp is 1
<%= %>
выполняет код, а также печатает вывод, например:Мы можем напечатать значение переменной rails.
Будет печатать
1
<% -%>
Это не имеет значения, так как ничего не печатает,-%>
имеет смысл только<%= -%>
, это позволит избежать новой строки.<%# %>
закомментирует код, написанный в этом.источник