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

错误:参数数量错误(2 比 1)

我在不同的地方多次看到这种情况。这是一个错误还是我犯了一些简单的错误?

4

2 回答 2

0

尝试将其作为数组传递:

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

糟糕,这当然是一个简单的错误。我在自定义表单构建器中覆盖了 fields_for 辅助方法,我只将它定义为有一个参数。

于 2013-04-07T21:39:41.660 回答