这有效:
<%= 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)
我在不同的地方多次见过这种情况。这是一个错误还是我犯了一些简单的错误?
答案 0 :(得分:0)
尝试将其作为数组传递:
<%= f.fields_for [:exercise, exercise] do |builder| %>
答案 1 :(得分:0)
Woops,这当然是一个简单的错误。我在自定义表单构建器中覆盖了fields_for helper方法,我只将其定义为有一个参数。