0
本質上,我想使用單個表單填充同一個嵌套屬性對象的多個實例。這可能嗎?如何在表單中創建嵌套屬性的多個實例
我:
class Parent < ActiveRecord::Base
has_many :childs
acceptes_nested_attributes_for :childs
end
class Child < ActiveRecord::Base
belongs_to :parent
end
,然後家長的看法/ new.html.erb
<%= form_for @parent, url: parents_path(@parent), method: :post do |f| %>
// basic fields for parent
<%= f.fields_for :child do |ff| %>
<%= ff.title %>
<% end %>
<% end %>
工作正常,但如果我想要做的事,如:
<%= form_for @parent, url: parents_path(@parent), method: :post do |f| %>
// basic fields for parent
<%= f.fields_for :child do |ff| %>
<%= ff.title %>
<% end %>
<%= f.fields_for :child do |ff| %>
<%= ff.title %>
<% end %>
<% end %>
它只填充最後一個fields_for條目的參數。創建允許實例化嵌套屬性的多個實例的表單的正確方法是什麼?
我知道我能做到這一點,但希望一些方法來提供通過形式的原始建設這個功能。這樣用戶可以決定他們想要創建多少個孩子的實例。 –
@DanielNill,用戶如何決定?你將如何處理?我做過類似設計的一種方法是使用ajax,用戶可以點擊一個「添加」按鈕,在視圖中添加一個新的「子」記錄。你能否稍微解釋一下你期望實施什麼類型的設計? – vee
用戶將通過使用本質上描述的內容來進行描述,但應該不需要進行ajax調用。除非你正在編輯一個現有的父母,否則應該不需要事先構建它的孩子,除了約定表單期望的內容。只要在用戶的請求處追加新元素到表單上,然後在控制器的create方法中構建屬性散列就會容易得多。我只是希望有一個軌道公約來解決這個問題。聽起來好像沒有。 :( –