0
我的表单中包含以下内容。通过这段代码,我可以在页面上动态添加divisions,sub_divisions和sub_sub_divisions。问题是我添加的sub_sub_divisions被保存到第一个子分区,即使它们正确显示在视图的其他子分区上。我不知道视图和传递给控制器的错误之间发生了什么。非常感谢。Rails nested_form gem更新错误的父数据
<%= nested_form_for @division do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<table>
<tr>
<td>
<%= f.label t("name") %>
<%= f.text_field :name, class: 'form-control' %>
</td>
<td>
<%= f.label t("description") %>
<%= f.text_field :description, class: 'form-control' %>
</td>
</tr>
<tr><td><h3><%=t :sub_divisions %></h3></td></tr>
<tr>
<td colspan=4>
<table id="sub_divs" class="table table-condensed table-striped">
<tr><th><%=t :name %></th><th><%=t :description %></th></tr>
<%= f.fields_for :sub_divs, :wrapper => false do |sub_div| %>
<tr class="fields">
<td><%= sub_div.text_field :name, class: 'form-control' %></td>
<td><%= sub_div.text_field :description, class: 'form-control' %></td>
<td><%= sub_div.link_to_remove t("delete") %></td>
</tr>
<td colspan=3>
<table id="<%= 'sub_sub_divs' + sub_div.index.to_s %>">
<tr><th><%=t :name %></th><th><%=t :description %></th></tr>
<%= sub_div.fields_for :sub_sub_divs,
:wrapper => false do |sub_sub_div| %>
<tr class="fields">
<td><%= sub_sub_div.text_field :name,
class: 'form-control' %></td>
<td><%= sub_sub_div.text_field :description, class:
'form-control' %></td>
<td><%= sub_sub_div.link_to_remove t("delete") %></td>
<td><%= sub_sub_div.hidden_field :id,
value: sub_sub_div.object.sub_div_id %></td>
</tr>
<% end %>
</table>
</td>
</tr>
<tr>
<td colspan=3 class="pull-right">
<%= sub_div.link_to_add t("add") +
t("sub") + t('sub') + t('div'), :sub_sub_divs,
:data => { :target => "#"+"sub_sub_divs" +
#{sub_div.index.to_s}", id: sub_div.object.id} %>
</td>
</tr>
<% end %>
</table>
</td>
</tr>
<tr><td colspan=2 class="pull-right">
<%= f.link_to_add t("add") + t("sub") + t('div'),
:sub_divs, :data => { :target => "#sub_divs"} %></td></tr>
<tr><td><%= f.submit t("update"), class: "btn btn-primary" %></td></tr>
</table>
<% end %>
嗨迭戈,感谢您的答复,但它并没有为我工作。我正在尝试动态创建新行,并且迭代<%= @ division.sub_divs.each do | sub_div | %>失败,错误消息未定义的方法'values_at'为零:NilClass – Tiamon 2014-10-01 07:23:46
我认为'sub_divs'是'@ division'上的关系。你必须适应这条线,以便你有你的'sub_divs' – DiegoSalazar 2014-10-01 14:23:16
再次感谢。我已经取得了一些进展,现在我知道哪里出了问题。动态添加的字段不是先构建的。我试图根据文档中的建议做到这一点,如下所示:<%= sub_div.link_to_add t(“add”),:sub_sub_divs,:model_object => SubSubDiv.default,:data => {:target =>“ #“+”sub_sub_divs“+”#{sub_sub_div.index.to_s}“,id:sub_div.object.id}%>但是然后错误信息告诉我默认没有定义 – Tiamon 2014-10-01 15:29:56