2011-06-06 140 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)。