Нежелательные пробелы в представлении Erb - PullRequest
3 голосов
/ 14 августа 2011

Вот мой код синатры:

get '/' do
    foo = 'not bar'
    erb :index
end

My layout.erb

<html>
  <head></head>
  <body>
    <%= yield %>
  </body>
</html>

Мой index.erb

<div class="container">
</div>

Теперь проблема в том, screen shot of problem

Дополнительный текст (выделен желтым цветом) мешает моему дизайну Есть идеи, почему это происходит? этого не произойдет, если я не использую макет и использую только index.erb со всем HTML-кодом

[Edit:] Использование <% = yield -%> выдает ошибку (неожиданный tUMINUS, ожидающий kEND; @ _out_buf.concat ""; - yield -; @ _out_buf.concat "\ n") в .... layout.rb

Ответы [ 2 ]

4 голосов
/ 14 августа 2011

По-моему, 4 пробела взяты из мягких вкладок в вашем макете.

body
= yield

никогда не подводит меня пробел

ненавижу ERB

3 голосов
/ 03 марта 2013

Вы можете установить это с помощью параметра * trim_mode * для ERB

From http://ruby -doc.org / stdlib-1.9.3 / libdoc / erb / rdoc / ERB.html # method-c-new :

Если параметр trim_mode передает строку, содержащую один или несколько из следующих модификаторов, ERB будет корректировать генерацию своего кода следующим образом:

%  enables Ruby code processing for lines beginning with %
<> omit newline for lines starting with <% and ending in %>
>  omit newline for lines ending in %>
...