Удалить пробелы в шаблонах при использовании класса ERB в Ruby - PullRequest
0 голосов
/ 15 января 2019

Вот простой шаблон ERB:

# /tmp/test.erb
Hello
<% if (@x) %>
XXX
<% end %>
Goodbye

Вот мой код Ruby для его рендеринга:

require 'erb'
@x = false
renderer = ERB.new(File.read('/tmp/test.erb'))
output = renderer.result()
print output

Вот вывод:

Hello

Goodbye

Обратите внимание на пустую строку.Я не могу избавиться от этого лишнего пробела.Теги <%- и -%> не работают с ERB.new (я получаю ошибки).

Как избавиться от пустого пространства при использовании Ruby 2.3.

1 Ответ

0 голосов
/ 15 января 2019

Хей, когда вы хотите использовать тег <%- -%> (это исключает вывод if), вы должны передать - в trim_mode параметр ERB.new, чтобы использовать его.

См. Следующий пример:

Измените свой test.erb файл на следующий код:

Hello
<% if (@x) -%>
 XXX
<% end -%>
Goodbye

Когда вы создаете экземпляр ERB, передайте опцию следующим образом:

renderer = ERB.new(File.read('test.erb'), nil, '-')

Теперь теги <%- -%> будут работать нормально, надеюсь, это поможет!

...