0

これは機能します:

<%= f.fields_for :exercise do |builder| %>
            <%= render 'exercise_fields', f: builder %>
        <% end %>
        <%= add_fields "Add Exercise", f, :exercises %>

    <%= f.submit %>

しかし、別の引数 (この場合はオブジェクトへの参照) を追加すると、ArgumentError がスローされます。

<% @workout.exercises.each do |exercise| %>

        <%= f.fields_for :exercise, exercise do |builder| %>
            <%= render 'exercise_fields', f: builder %>
        <% end %>
        <% end %>
        <%= add_fields "Add Exercise", f, :exercises %>

    <%= f.submit %>

エラー: 引数の数が間違っています (1 に対して 2)

私はこれをさまざまな場所で何度も見てきました。これはバグですか、それとも単純な間違いですか?

4

2 に答える 2

0

配列として渡してみてください:

<%= f.fields_for [:exercise, exercise] do |builder| %>
于 2013-04-07T21:14:59.533 に答える
0

おっと、それはもちろん単純な間違いでした。カスタム フォーム ビルダーで fields_for ヘルパー メソッドをオーバーライドしていましたが、引数を 1 つだけ定義しました。

于 2013-04-07T21:39:41.660 に答える