Mysql rails 4一种形式的多个模型,包括一个键值表

Mysql rails 4一种形式的多个模型,包括一个键值表,mysql,ruby-on-rails,forms,form-helpers,Mysql,Ruby On Rails,Forms,Form Helpers,我有一个表格可以创建“人才档案”。在此表单中,人才档案的属性为“身高、体重、头发等”,作为单独的模型。然而,这实际上涉及4个表 带示例的表格 人才概况 id-1 人才\配置文件\属性-(将人才链接到具有值的属性) 人才id-1 默认属性\u id-2 默认属性值id-3 默认属性- id-2名称-“头发” 默认属性值- id-3默认属性\u id-2值-“棕色” 与模型的关系很好,我可以手动插入到表中,并根据需要检索每个概要文件的属性。然而,我面临的问题是如何以单一形式提交TalentProfi

我有一个表格可以创建“人才档案”。在此表单中,人才档案的属性为“身高、体重、头发等”,作为单独的模型。然而,这实际上涉及4个表

带示例的表格
人才概况
id-1

人才\配置文件\属性-(将人才链接到具有值的属性)
人才id-1
默认属性\u id-2
默认属性值id-3

默认属性-
id-2
名称-“头发”

默认属性值-
id-3
默认属性\u id-2
值-“棕色”

与模型的关系很好,我可以手动插入到表中,并根据需要检索每个概要文件的属性。然而,我面临的问题是如何以单一形式提交TalentProfile模型和TalentProfileAttributes模型。

我尝试为使用接受\嵌套\属性\但未成功。此外,我不太确定如何将default\u attribute\u id和default\u attribute\u value\u id获取到表单的字段中。任何想法或方向都将不胜感激,我们已经为此研究了几个小时,但都无济于事


基本上,我在寻找一个表单,该表单显示DefaultAttributes表中的所有值,下拉列表包括每个属性的DefaultAttributeValue,提交时,在TalentProfileAttribute表中创建关系。

找到了它,在模型、视图和控制器中使用了它

def new
  @talent = TalentProfile.new
  @attributes = DefaultAttribute.all
  @attributes.count.times { @talent.talent_profile_attributes.build }
end
模型

控制器

def new
  @talent = TalentProfile.new
  @attributes = DefaultAttribute.all
  @attributes.count.times { @talent.talent_profile_attributes.build }
end
看法


<% attr_i = DefaultAttribute.first.id - 1 %>
<%= f.fields_for :talent_profile_attributes do |attrf| %>
  <%= attrf.label :default_attribute_value_id, @attributes[attr_i].name %>
  <%= attrf.select :default_attribute_value_id, 
                  @attributes[attr_i].default_attribute_values.collect {|p| [ p.value, p.id ] }.unshift("-") %> 
  <%= attrf.hidden_field :default_attribute_id, value: @attributes[attr_i].id %>
  <% attr_i += 1 %>
<% end %>