Rails 嵌套表单和 bootstrap 选项卡

Rails nested form and bootstrap tabs

我有一个嵌套模型 (exptype),我正在使用 bootstrap 选项卡来显示父项 (experiment) 和它的 has_many 关系儿童 (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。请注意,我还在 fields_for 调用中添加了 e。看看这里: http://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for