Почему мой html становится некачественным? - PullRequest
0 голосов
/ 02 апреля 2010

У меня есть следующая таблица в форме, которая встроена в форму (semantic_form_for). Появляется все, что я прошу сгенерировать с помощью ruby, но таблица плохо искажается (по сути, теги НИКОГДА не формируются.

Заголовки таблиц отображаются правильно

Есть 14 объектов available_date, которые передаются, и они чередуются со значением времени 1 или 2, так что это просто ужасно, но, вероятно, просто исправить ...

<table class="availability_table">
    <tr>
        <th>Date</th>
        <th>Early</th>
        <th>Late</th>
    </tr>
    <% f.fields_for :available_dates do |ad| %>
        <% if ad.object.time == 1  #if this is an early shift, then start the new row %>
            <tr><td><%= ad.object.date.strftime('%a, %b %d, %Y') %></td>
                <td><%= ad.collection_select(:availability , LookupAvailability.all.collect, :id, :name) %></td>
        <% else #otherwise end the row with just a box%>
            <td><%= ad.collection_select(:availability , LookupAvailability.all.collect, :id, :name) %></td></tr>
        <% end %>
    <% end %>
</table>

Итак, как я уже сказал, форма функционирует должным образом, и все объекты обновляются и отображаются правильно, и все такое, просто HTML не выводит эхо должным образом, поэтому моя таблица искажена. Помогите!

Ответы [ 3 ]

2 голосов
/ 02 апреля 2010

Попробуйте это:

<% f.fields_for :available_dates do |ad| %>
  <tr>
    <% if ad.object.time == 1  #if this is an early shift, then start the new row %>
      <td><%= ad.object.date.strftime('%a, %b %d, %Y') %></td>
      <td><%= ad.collection_select(:availability , LookupAvailability.all.collect, :id, :name) %></td>
    <% else #otherwise end the row with just a box%>
      <td><%= ad.collection_select(:availability , LookupAvailability.all.collect, :id, :name) %></td>
      <td></td>
    <% end %>
  </tr>
<% end %>

Я изменил позиции <tr> и </tr> и добавил <td></td>, чтобы добавить пустую ячейку таблицы.

0 голосов
/ 02 апреля 2010

Вы используете ruby ​​1.8.7?

Если это так, попробуйте удалить комментарии рядом со строками if и else. На erb единственный допустимый синтаксис комментариев - <% # это комментарий%>. То есть «#» должно быть в начале, сразу после «<%», а не после инструкции. На ruby ​​1.8.7 он зависает случайным образом, искажая отображаемый html. </p>

0 голосов
/ 02 апреля 2010

Вы закрываете свой тег tr только в ветви else. Имеет смысл закрыть его после if-else.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...