我正在使用cocoon添加嵌套属性。我在视图中有以下代码:
<table>
<thead>
<tr>
<th>Title</th>
<th>Action</th>
</tr>
</thead>
<tbody id="emergency_personnels">
<%= f.fields_for :emergency_personnels do |emergency_personnel| %>
<%= render 'emergency_personnel_fields', f: emergency_personnel %>
<% end %>
</tbody>
</table>
<%= link_to_add_association 'Add emergency personnel', f, :emergency_personnels, data: {"association-insertion-node" => "tbody#emergency_personnels", "association-insertion-method" => "append"} %>
它应该可以正常工作,但新字段不会附加在表格的下方,而是显示在表格之外。
任何人都可以为它提出解决方案。感谢
答案 0 :(得分:1)
根据茧文件: insertion-behaviour
默认行为:
默认插入位置位于当前容器的后面。
如果您要添加到自定义位置,我们可以通过两个 数据属性实现此目的:
association-insertion-method
在哪里添加
association-insertion-node
在哪里添加与节点
以下是示例:
$(document).ready(function() {
$("#owner a.add_fields").
data("association-insertion-method", 'append').
data("association-insertion-node", '#parent_table');
});
注意:
如果要将模板添加到特定位置:
您需要将association-insertion-node
指定为函数。例如
$(document).ready(function() {
$(".add_sub_task a").
data("association-insertion-method", 'append').
data("association-insertion-node", function(link){
return link.closest('.row').next('.row').find('.sub_tasks_form')
});
});