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
我有一个嵌套模型 (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