我有一个嵌套的表单,我为has_many关系显示了几个字段。当我渲染包含字段的部分时,我的tr和td标签被删除。然而,div标签不是。我该怎么做才能确保标签没有被剥离?
_form.html.erb
<%= form_for @invoice do |f>
.
.
.
<table>
<th>Qty</th>
<th>Description</th>
<th>Price</th>
<th>EA/C</th>
<th>Amount</th>
<%= f.fields_for :invoice_line_items do |builder| %>
<%= render 'invoice_line_item_fields', :f => builder %>
<% end %>
</table>
<% end %>
在浏览器源代码中查看时,表标记仅包含标题,并在呈现嵌套表单部分之前关闭。部分完全剥离了所有tr和td元素。
_invoice_line_item_fields
<div>
<tr>
<td>
<%= f.text_field :qty %>
</td>
<td>
<%= f.text_field :description %>
</td>
<td>
<%= f.text_field :price %>
</td>
<td>
<%= f.text_field :ea_c %>
</td>
<td>
<%= text_field_tag :amount %>
</td>
<td>
<%= f.hidden_field :_destroy %>
<%= link_to "remove", "#", :class => "remove_line_items" %>
</td>
</tr>
</div>
答案 0 :(得分:0)
正如其他人在评论中指出的那样,你的标记是不正确的,浏览器显示的内容可能会被高度修改,因为它试图猜测你的实际含义。
表的正确结构是:
<table>
<thead>
<th>Header1</th>
<th>Header1</th>
</thead>
<tbody>
<tr>
<td>You can have divs here ...</td>
<td>You can have divs here ...</td>
</tr>
</tbody>
</table>
除了<td>...</td>
- 标签内外,不要混入其他HTML元素,你应该没问题......