我有兩個模型類,說父母和孩子。首先創建父母,然後可以添加孩子。嵌套屬性,父母與可選子
我想有一個編輯頁面,您可以編輯父的信息,並可能增加一個孩子。
我把它設置,以便家長可以訪問子屬性:
has_one :child
accepts_nested_attributes_for :child
在我看來,編輯父的信息,我有一個表格,顯示所有的家長信息,然後領域要麼編輯現有的子信息或添加新的子:
<%= form_for(@parent, :as => :parent, ... %>
<%= form.text_field(:field_one) %>
<%= form.text_field(:field_two) %>
<%= form.fields_for @child do |child| %>
<%= child.text_field(:child_field_one) %>
<%= child.text_field(:child_field_two) %>
<%end%>
<%end%>
的問題是,我能得到這個工作的唯一方法是讓我的父母編輯器創建一個新的子並將其與父渲染視圖前關聯。然後當用戶試圖保存時,我的控制器會檢查子字段是否爲空,如果是,則刪除新創建的子項。這一個問題是,它創建了一個空兒(假設一個孩子不存在)每個編輯頁面加載時間,然後將其保存到數據庫中(我不希望)
是否有在父級編輯頁面上顯示不存在的子項的字段而不在創建之前創建新子級的優雅方式?理想情況下,我希望一切都在一個表單上。我敢肯定,我可以想出一種以多種保存按鈕以多種形式進行此操作的方法。