請求書モデル内にネストされたモデル (invoice_line_items) を作成する次のコードがあります。
= nested_form_for @invoice, mutipart: true, class: "form-horizontal" do |f|
...
%table.table.table-bordered{:id => "line-items"}
%thead
%tr
%th
%th Description
%th Quantity
%th Rate
%tbody
%tr
= f.fields_for :invoice_line_items do |line_item|
%td= line_item.link_to_remove "X"
%td= line_item.text_field :description
%td= line_item.text_field :quantity, :class => "input-mini"
%td= line_item.text_field :rate, :class => "input-mini"
= f.link_to_add "Add", :invoice_line_items, :data => { :target => "#line-items" }
2 つの問題があります。1) [追加] をクリックして新しい行を追加すると、テーブルの書式設定と一致せず、テーブルに挿入されません。私はそれを機能させるためにあらゆることを試みましたが、うまくいきません。また、ryanb の gem ドキュメントで言及されているように、「:target」を追加してみました。2) 請求書ページで最初に 3 つのinvoice_line_items をユーザーに提供したいのですが、その方法がわかりません。
編集:私はそれをいじっていたので、今は少し違うものを手に入れました. まだ正しくやっているとは思いませんが、「追加」をクリックするたびに新しいフォームが作成されます。
.row-fluid
= f.fields_for :invoice_line_items, :wrapper => false do |line_item|
%table.table.table-bordered#tasks
%thead
%th
%th Description
%th Quantity
%th Rate
%tr.fields
%td= line_item.link_to_remove "X"
%td= line_item.text_field :description
%td= line_item.text_field :quantity, :class => "input-mini"
%td= line_item.text_field :rate, :class => "input-mini"
.row-fluid
= f.link_to_add "Add", :invoice_line_items, :data => { :target => "#tasks" }