Rails 5 - table 行,但不存在条目

Rails 5 - table row while no entry exists

在我的 rails 应用程序中,正在标记文档的内容。对于没有任何标签的文档,列表中会显示一个空行(table 行)- 始终位于 table 的底部。几个小时以来,我一直试图解决这个问题,但不确定去哪里研究,而且我一无所获。欢迎大家帮忙!

这是视图(片段):

<div class="row" id="annotationResults">
    <div class="panel panel-default" style="background-color: white;  word-wrap: break-word; font-size: 0.9em;">
        <table id="tags" class="table table-hover">
            <thead>
                <tr>
                    <th>Tagged content</th>
                    <th>as</th>
                    <th>in</th>
                    <th></th>
                </tr>
            </thead>
            <tbody>
            <% @annotation.tags.each do |tag| %>
                <tr>
                    <td><%= tag.content %></td>
                    <td><%= tag.tagtype_id %></td>
                    <td><%#= tag.tagtype.name %></td>
                    <td><%= link_to '', [tag.annotation, tag], method: :delete, data: { confirm: 'Please confirm deletion!' }, :class => "glyphicon glyphicon-remove" %></td>
                </tr>
            <% end %>
            </tbody>
        </table>
    </div>
</div>

试试这个,

<% if tag.content.present? %>
  <%=  tag.content %>
<% end %>

它在那里是因为你正在打印一个空 td

<td><%= tag.content %></td>

将打印 td 元素,即使 tag.content 为空。检查示例:

td{ border: 1px solid black }
<table>
  <tr>
    <td>foo</td>
    <td>bar</td>
  </tr>
  <tr>
    <td></td>
    <td></td>
  </tr>
</table>

使用您在 中提到的 RoR 片段:

<% @annotation.tags.each do |tag| %>
  <% unless tag.content.blank? %>
    <td>
      <!-- logic -->
    </td>
  <% end %>
<% end %>