\ n новая escape-последовательность строки в ERB - PullRequest
2 голосов
/ 11 ноября 2011

Я не уверен, почему "\ n \ n" не добавляет двух разрывов строк в моем коде ниже:

<%= (getparagraph(@geography, "geography")+"\n\n") if @geography != "Other" %> 

Для пояснения метода getparagraphs просто возвращает абзац текста. Я пытаюсь добавить два разрыва строки в коде Ruby без использования <br/>

Есть идеи? Все, что я прочитал, подразумевает, что это должно работать.

Ответы [ 3 ]

4 голосов
/ 11 ноября 2011

У вашего помощника в названии "абзац", поэтому, возможно, вам следует заключить его в абзац и использовать CSS, чтобы добавить соответствующий интервал вокруг абзаца:

<% if @geography != "Other" %>
    <p>
      <%= getparagraph(@geography, "geography") %>
    </p>
<% end %>

Вы всегда можете добавить специальный класс к <p>, если после этого вам понадобится дополнительный интервал:

<% if @geography != "Other" %>
    <p class="geo-chunk">
      <%= getparagraph(@geography, "geography") %>
    </p>
<% end %>

, а затем в вашем CSS:

.geo-chunk {
    margin-bottom: 2em; /* Or whatever works */
}

И если это должно появиться внутри другого <p>, вам нужно немного перестроить HTML, так как вы не можете поместить элемент блока внутри <p>:

<div>
    <!-- The old <p> content ... -->
    <% if @geography != "Other" %>
        <div class="geo-chunk">
          <%= getparagraph(@geography, "geography") %>
        </div>
    <% end %>
</div>
3 голосов
/ 11 ноября 2011

Вы выводите HTML; Пробелы в значительной степени игнорируются при рендеринге.

Вместо этого используйте <br/> теги и .html_safe.

1 голос
/ 11 ноября 2011

Это внутри HTML?Если так, то просто используйте <br>.HTML игнорирует несколько пробельных символов, поэтому у вас может быть один пробел или 50 символов новой строки, и результат будет таким же.

Еще одно примечание: если вы не используете XHTML (сама по себе не очень хорошая идея), doне используйте самозакрывающиеся теги, такие как <br/>.Косая черта недопустима, поэтому опустите ее.

...