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