2012-09-23 51 views
1

我最近跟着Ryan Bates关于嵌套窗体的教程,并做了基本相同的事情,他只是与其他名称。我想在订单中嵌套任务,并且我想为每个包裹创建一个任务,并且用户应该在表单中添加一个计数。嵌套窗体不显示任务

所以我的控制器看起来像这样

def new 
    @order = Order.new 
    @buns = Bun.all 
    @buns.each do |bun| 
    @order.assignments.build(:bun_id => bun.id) 
    end 
end 

而且_form部分看起来像这样

<%= form_for(@order) do |f| %> 
    <div class="field"> 
     <%= f.label :user_id %><br /> 
     <%= f.number_field :user_id %> 
    </div> 
    <div id="assignments" class="field"> 
     <% f.fields_for :assignments do |builder| %> 
     <div id="assignment" class="field"> 
      <%= builder.label :count, "Anzahl" %> 
      <%= builder.text_field :count %> 
      <%= builder.object.bun_id %> 
     <% end %> 
     </div> 
    </div> 
    <div class="field"> 
     <%= f.label :due_to %><br /> 
     <%= f.datetime_select :due_to %> 
    </div> 
    <div class="actions"> 
     <%= f.submit %> 
    </div> 
    <% end %> 

的订购模式有这部分

has_many :assignments 
has_one :user 

accepts_nested_attributes_for :assignments 

而且分配模型这一块:

attr_accessible :bun_id, :order_id, :count 
belongs_to :bun 
belongs_to :order 

当我把任务记录下来的时候,所有这些都应该被构建,那么为什么不是这些域被渲染?

感谢您的帮助!

回答

1

你在你的ERB缺少等号(=):

<%= f.fields_for :assignments do |builder| %> 
+0

哎呀,该死的,非常感谢! –