2010-03-12 21 views
3

我想通過使用fields_for方法從一個表單構建兩個模型。我的代碼如下所示:Rails:包含fields_for表單助手的索引

<% for scale in @event.scales %> 
    <% f.fields_for "scale[]", scale do |scale_form| %> 
    <p> 
     Scale<br /> 
     <%= scale_form.label :name %> 
     <%= scale_form.text_field :name %> 
     <%= scale_form.label :price %> 
     <%= scale_form.text_field :price %> 
    </p> 
    <% end %> 
<% end %> 

但遺憾的是輸出HTML缺少鱗片的ID:

<p> 
    Scale<br /> 
    <label for="event_scale__name">Name</label> 
    <input id="event_scale__name" name="event[scale][][name]" size="30" type="text" /> 
    <label for="event_scale__price">Price</label> 
    <input id="event_scale__price" name="event[scale][][price]" size="30" type="text" /> 
</p> 

... 

下面是相應的控制器和模型:

class EventsController < ApplicationController 
    ... 

    def new 
    @event = Event.new 
    @providers = Provider.find(:all, :order => :name) 
    3.times { @event.scales.build } 
    respond_to do |format| 
     format.html 
    end 
    end 

    ... 
end 


class Event < ActiveRecord::Base 
    has_many :scales 

    ... 
end 

我是什麼做錯了?

回答

3

Fields_for不是封閉表單對象的方法,所以請將f.fields_for更改爲fields_for