2011-06-06 141 views
0

我似乎無法找到任何這樣的例子,所以我不知道我是否完全錯誤或過度複雜化它。一種形式的多個父模型

我有一個屬於安裝的聯繫人模型。有很多不同的聯繫人類別(自動,健康,兒童..)所以在聯繫人/新形式我想有一個形式,但多個記錄可以添加到這種形式的聯繫人模型。

例如,有一個帶聯繫人字段的自動部分,帶聯繫人字段的健康部分,以及一個提交按鈕。他們唯一的共同點就是它們屬於哪種安裝,但是直到他們填寫表單之前我都不會知道。

任何幫助?

回答

2

您希望爲表單輸入使用數組語法,這將使您能夠在安裝表單中嵌套一個聯繫人數組。

舉例來說,你可以這樣做:

<%= form_for @installation do |f| %> 
    <% for category in @categories do %> 
    # category is 'auto', 'health', 'children', etc. 
    <%= fields_for 'installation[#{category}][contacts][]' do |contact_f| %> 
     <%= contact_f.text_field :contact_data_field %> 
     # more fields here 
    <% end %> 
    <% end %> 
<% end %> 

然後在安裝控制器,你將需要處理params散列,看起來是這樣的:在

{'installation' => { 'auto' => { 'contacts' => [ # an array of contact data hashes ] }}}

退房understanding-parameter-naming-conventions導軌在表單助手上引導。

伊恩。

1

這在rails中被稱爲nested form,如果你搜索,你會發現很多資源來幫助你進一步。例如,爲了讓你開始:檢查出this post on asciicasts(可讀版本的railscasts.com)。