形成一对多的关系

时间:2013-07-24 11:08:00

标签: ruby-on-rails ruby has-many formtastic

我有一个与索赔有许多关系的模型驱动程序,我希望有一个表单,客户可以输入他们的详细信息,以及他们过去的一些声明。

在模型中,我有:

has_many :claims

并以我输入的形式:

<%= semantic_form_for @driver do |f| %>
  <%= f.input :name %>
  .......

  <%= f.inputs :for => :claims do |c| %>
    <% c.input :happen_date %>
    <% c.input :claim_details %>
    ...........
  <% end %>
<% end %>

当我提交表格时,问题就出现了,我得到了索赔(#3213231311)预期,得到了数组(#70299228017580)

我看了一下表格,我看到了:

{"utf8"=>"✓",
"authenticity_token"=>"VD3lt+LXZoA94YoL3PkI0frTH5EzT4vs/lZhzQhp0IQ=",
"driver"=>{
"name"=> "test tester",
.......
"claims"=>{"happend_date(3i)"=>"10",
"claim_date(2i)"=>"10",
"claim_date(1i)"=>"2012",
"claim_details"=>"dsadsadsadas"}},
"commit"=>"Next"}

由于与声明之间存在着非常多的关系,因此不应将声明包含在以下数组中:

"claims" => [{.....},{......}]

我一直在表单上努力工作,仍然无法将声明发送为阵列,任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您是否在“驱动程序”模型中包含此内容: -

accepts_nested_attributes_for :claims

编辑您的表单,如:

<%= semantic_form_for @driver do |f| %> 
  <%= f.input :name %>
  <%= f.semantic_fields_for :claims do |c| %>
    <% c.input :happen_date %>
    <% c.input :claim_details %>
  <% end %>
<% end %>

希望它会有所帮助。感谢