Как сохранить стиль для HTML в Ruby / Rails? - PullRequest
0 голосов
/ 15 октября 2010

Я новичок в Ruby / Rails и только что сгенерировал мой первый HTML программным способом - что-то захватывающее - но когда я просматривал «исходный код страницы» из браузера, мой HTML имел все эти дополнительные пробелы и испортил логическийотступ:

Этот код в представлении:

<% @states_array.each do |state| %>
  <ul><%= state %></ul>
<% end %>

и этот код в моей разметке application.html.erb: Практический заголовок

  <div class="text">
    <%= yield %>
  </div>

  <div class="footer">
  </div>

При создании этого HTML-кодаЯ просмотрел исходный код этой страницы:

      <div class="header">
        Practice Header
      </div>

      <div class="text">

  <ul>California</ul>

  <ul>Colorado</ul>

  <ul>Florida</ul>

  <ul>Georgia</ul>

  <ul>New York</ul>

  <ul>North Carolina</ul>

  <ul>North Dakota</ul>

  <ul>Oregon</ul>

      </div>

      <div class="footer">
      </div>

после каждой строки возникал только дополнительный пробел, и логический отступ в том месте, куда я поместил <% = yield%>, был потерян.Большое спасибо за вашу помощь заранее.

Ответы [ 4 ]

3 голосов
/ 15 октября 2010

Вы можете подавить завершающий символ новой строки, закрыв его знаком минус:

<% some.ruby.statement -%>

Если красота вашей разметки действительно имеет для вас значение, посмотрите на Haml (http://haml -lang.com/).

2 голосов
/ 15 октября 2010
<% @states_array.each do |state| %>
  <ul><%= state %></ul>
<% end %>

Результат в строке "\n<ul>state</ul>\n" для каждого состояния в массиве. Так что вывод технически правильный. Вы можете использовать

<% @states_array.each do |state| %><ul><%= state %></ul>
<% end %>

Но это не так легко прочитать в вашем коде. Я читал, что есть способ пропустить завершающие новые строки, но не помню точный метод (Обновление: см. @ user156011 ответ ).

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

1 голос
/ 15 октября 2010

Если вы стремитесь к удобочитаемости разметки - Haml был для меня всего лишь мечтой. В режиме разработки он выводит великолепный HTML-код с правильным отступом. По умолчанию он переключается в «уродливый режим», когда ваше приложение запускается в производственном режиме, чтобы сэкономить ресурсы сервера.

Однако, если вы новичок в Ruby / Rails, изучение нового языка шаблонов может быть не в ваших интересах. (Тем не менее, я бы сказал, что если вы можете выучить ERb, вы можете легко забрать Хамла за день.)

Если вы собираетесь придерживаться ERb, вы можете использовать <% - и -%>, соответственно подавляя начальные / конечные пробелы. Что может помочь в вашем поиске чистой разметки.

Удачи:)
~ Робби

0 голосов
/ 15 октября 2010

Вам, вероятно, следует изменить его на что-то вроде:

<ul>
<% @states_array.each do |state| %>
  <li><%= state %></li>
<% end %>
</ul>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...