我有一个嵌套模型 (exptype
),并且我使用 Bootstrap 选项卡来显示父级之间的 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
的选项卡。
最佳答案
它应该看起来像:
<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
关于ruby-on-rails - Rails 嵌套表单和 Bootstrap 选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29620013/