我有一个嵌套模型(exptype
),我使用引导标签显示父(has_many
)和它之间的experiment
关系孩子(exptype
)。
到目前为止,我的代码如下:
<div role="tabpanel">
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<% @experiment.exptypes.each do |e| %>
<li role="presentation"><a href="#exptype<%=e.id%>" aria-controls="exptype<%=e.id%>" role="tab" data-toggle="tab"><%=e.get_name%></a></li>
<% end %>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<%= f.fields_for :exptypes do |builder| %>
<div role="tabpanel" class="tab-pane" id="exptype<%=builder.object.id%>">
<%=builder.object.id%>
</div>
<% end %>
</div>
</div>
标签本身有效。但tab-content
没有。对于每个标签,会发生什么,所有builder.object.id
都会显示在每个标签中,而不会显示在各自的标签中。
我相信导致问题的fields_for
循环。但是,我希望能够有一个允许添加新exptype
的选项卡。
答案 0 :(得分:1)
应该看起来像:
<div class="tab-content">
<% @experiment.exptypes.each do |e| %>
<div role="tabpanel" class="tab-pane" id="exptype<%=builder.object.id%>">
<%= f.fields_for :exptypes, e do |builder| %>
<%=builder.object.id%>
<% end %>
</div>
<% end %>
</div>
fields_for
不是循环,只会创建一个div。请注意,我还在e
电话中添加了fields_for
。看看这里:
http://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for