2013-07-24 1 views
0

У меня есть модель Driver, которая имеет много отношений с претензиями, я хочу иметь форму, в которой клиент может ввести свои детали вместе с рядом претензий, которые у них были в прошлом.formtastic one to many relationship

В модели, у меня есть:

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) ожидается , получил Array (# 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"} 

Поскольку существует has_many связь с претензиями, не должны быть покрыты претензии в массиве как:

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

Я работал так тяжело на форме и до сих пор не может получить претензии быть отправить как массив, кто-нибудь поможет?

ответ

2

ли вы включить это в вашей модели 'Driver': -

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 %> 

Надеется, что это поможет. Спасибо

+0

попробовал это много раз, не работает – phil88530