0

請求書モデル内にネストされたモデル (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" }
4

1 に答える 1

1

これを理解するのは困難でしたが、nested_form gem の最新バージョンには jquery_nested_form.js ファイルの最新バージョンが付属していないことがわかりました (ドキュメントではこの関数を使用するように記載されていますが)。したがって、これを機能させるには、これを application.js に追加する必要がありました。

$(function ($) {
  window.NestedFormEvents.prototype.insertFields = function(content, assoc, link) {
    var target = $(link).data('target');
    if (target) {
      return $(content).appendTo($(target));
    } else {
      return $(content).insertBefore(link);
    }
  };
});

これにより、jquery_nested_form.js の関数が上書きされ、すべてが機能するようになりました。

于 2013-04-03T18:49:25.363 に答える