2011-09-12 9 views
0

で作業していない私の見解で、私はそれが動作するネストされた形ネストされたフォームはhas_manyの

<%= 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.name,c.id]} %> 
    <%= od.input :quantity %> 
    <%- end -%> 
<%- end -%> 

を構築しようとした際、私はモデルの受注

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

を持っています。しかし、使用

:for => :order_details 

はありません。それは何もレンダリングしない。

==解決済み!

解決策が見つかりました。

@ order.order_detailsはemtpyなので、nested_formはレンダリングされません。コントローラで

足す:fields_forは、ネストされた属性をレンダリングするために使用される

@order.order_details.build 
+0

私は理解していません。あなたが正しい方法でそれをすると、それはあなたが間違ったやり方をしたときにはうまくいかないのですか?申し訳ありませんが混乱しています。 –

答えて

0

をレンダリングformtasticようになります、私は解決策を見つけました。

@ order.order_detailsはemtpyなので、nested_formはレンダリングされません。

コントローラに足す:

@order.order_details.build 
0

、私は次のように

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

<%動作するはずだと思う - エンド - %>

をし、私達ができますfields_forヘルパーで複数のネストされたレコードを作成する railsキャストを参照

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

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

0

私は解決策を見つけました。

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

コントローラに足す:

@order.order_details.build 

は正しく

関連する問題