rails 4.0 beta,fields_for不接受多个参数

时间:2013-04-07 20:11:47

标签: ruby-on-rails arguments ruby-on-rails-4 fields-for

这有效:

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

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

2 个答案:

答案 0 :(得分:0)

尝试将其作为数组传递:

<%= f.fields_for [:exercise, exercise] do |builder| %>

答案 1 :(得分:0)

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