Иногда удобнее печатать в < %% > . Как это сделать в Rails?
Печать в ERB без <% =?
Ответ 1
http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-concat
Должно быть то, что вы ищете.
например. следующее выражение, использующее concat
:
<% concat "Output" %>
эквивалентно:
<%= "Output" %>
Ответ 2
В ERB: Знак <%% > означает, что здесь интерпретируется код Ruby. Индикатор <% =% > выводит код ruby, то есть отображает/распечатывает результат.
Итак, вам нужно использовать знак extra =, если вы хотите выводить его в стандартный файл ERB.
В противном случае вы можете посмотреть альтернативы ERB, которые требуют меньшего синтаксиса, возможно, попробуйте что-то вроде HAML. http://haml-lang.com/tutorial.html
Example:
# ERB
<strong><%= item.title %></strong>
# HAML
%strong= item.title
Это более удобно?
Ответ 3
erb имеет два метода для оценки встроенных выражений ruby. <%
, который оценивает выражение и <%=
, которое оценивает и печатает. Глобального объекта для печати в контексте привязки нет.
Как уже упоминалось Омаром, существует метод concat, который является частью ActionView. Это сделает то, что вы хотите.
В отличие от escape-скрипта, для erb нет выхода по умолчанию. Поскольку erb - это просто функция, и, учитывая шаблон, и привязка вернет переменную, она вернет значения текста и функций рекурсивно.
Существует горячая дискуссия о том, сколько логики должно быть разрешено в представлении, но как можно меньше того, к чему стремится большинство людей. Если вы размещаете больше кода, чем текст в представлении, вам может потребоваться рефакторинг вашего кода.