开发者

Nested form not working with has_many

开发者 https://www.devze.com 2023-04-03 23:16 出处:网络
I\'ve got a model Order class Order < ActiveRecord::Base has_many :order_details, :class_name => \"OrderDetail\"

I've got a model Order

class Order < ActiveRecord::Base
  has_many :order_details, :class_name => "OrderDetail"
  accepts_nested_attributes_for :order_details
end

When in my view I try to build a nested form

<%= semantic_form_for @order do |f| %>
    <%= f.inputs :name => "Detail", :for => :order_detail do |od| %>
    <%= od.input :shoe_id, :collection => Shoe.all.map{|s|[s.article_number,s.id]}  %>
    <%= od.input :size_id, :collection => Size.all.map{|s|[s.number,s.id]} %>
    <%= od.input :color_id, :collection => Color.all.map{|c|[c.na开发者_开发技巧me,c.id]} %>
    <%= od.input :quantity %>
  <%- end -%>
<%- end -%>

It works. But using

:for => :order_details

does not. It renders nothing.

== SOLVED!!

I found the solution.

@order.order_details is emtpy so no nested_form is rendered.

writting in the controller:

@order.order_details.build


fields_for is used to rendering nested attributes,i think following should work

<%= semantic_form_for @order do |f| %>
   <%= f.fields_for :order_details do |od| %>
   <%= od.input :shoe_id, :collection => Shoe.all.map{|s|[s.article_number,s.id]}  %>
   <%= od.input :size_id, :collection => Size.all.map{|s|[s.number,s.id]} %>
   <%= od.input :color_id, :collection => Color.all.map{|c|[c.name,c.id]} %>
   <%= od.input :quantity %>
<%- end -%>

<%- end -%>

and we can create multiple nested record with fields_for helper see rails cast

http://railscasts.com/episodes/196-nested-model-form-part-1

http://railscasts.com/episodes/197-nested-model-form-part-2


I found the solution.

@order.order_details is emtpy so no nested_form is rendered.

writting in the controller:

@order.order_details.build

will make formtastic render correctly


I found the solution.

@order.order_details is emtpy so no nested_form is rendered.

writting in the controller:

@order.order_details.build
0

精彩评论

暂无评论...
验证码 换一张
取 消