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

Печать в ERB без <% =?

Иногда удобнее печатать в < %% > . Как это сделать в Rails?

4b9b3361

Ответ 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 - это просто функция, и, учитывая шаблон, и привязка вернет переменную, она вернет значения текста и функций рекурсивно.

Существует горячая дискуссия о том, сколько логики должно быть разрешено в представлении, но как можно меньше того, к чему стремится большинство людей. Если вы размещаете больше кода, чем текст в представлении, вам может потребоваться рефакторинг вашего кода.