<% form_for @invoice do |f| %>
<%= render :partial => "invoice_item_fields", :locals => {:f => f} %>
<% end %>
と_invoice_items_fields:
<% f.fields_for :invoice_items do |builder| %>
<%= link_to_remove_fields "remove", builder %>
<%= builder.collection_select(:product_id, Product.all, :id, :name) %>
<%= builder.text_field :quantity, :size => 4,%>
<% end %>
フォームを送信すると、検証に合格しません。新しい アクションが再びレンダリングされます。物は選択された値です:product_idは が記憶されていませんが、:量はOKです。私は オプションの値を持つ インスタンス変数を設定して、選択した オプションの値を設定して、次に何かをしなければならないことを読んだ。
<%= builder.collection_select(:product_id, Product.all, :id, :name,
:selected => @selected_product) %>
しかし、アプリケーションには多くの:invoice_items、選択フィールドのために何をすべきかを知っていないので、値を覚えておいてください。
ありがとう。
この例を見てきましたか(まったく同じではありませんが...):http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_selectまた、生成されたhtmlでコメントを投稿することもできます(selectのみ)。 collection_selectの使い方が間違っていると思います。検証がパスされると、選択した製品のデータベースにレコードが保存されますか? –
こんにちは、コントローラコード、plsを表示できますか?あなたのページに@invoice(またはネストされたフィールドを持つ他のオブジェクト)用のフォームがたくさんある場合、どのようにリクエストを処理しますか? – Bohdan