rails simple_nested_form_for fields_for wrong numb

2019-06-16 11:00发布

问题:

So I'm building a form in rails 3.1, using

<%= simple_nested_form_for(@person, :url => collection_url, :html=>{:multipart => true}) do |f| %>
  <%= render :partial => "form", :locals => { :f => f } %>
<% end %>

but this line in the partial is causing the problem:

<h2>Badges</h2> 
<ul id="certifications">
// this following line is raising the error "wrong number of arguments (4 for 3)"
<%= f.fields_for :certifications do |certification_form| %> 
    <%= render :partial => 'certification', :locals => { :f => certification_form } %>
<% end %>
</ul>
<%= f.link_to_add "Add a Badge", :certifications %>

So here is the model:

class Person < ActiveRecord::Base
  has_many :certifications, :dependent=>:destroy, :order=>:position
  has_many :certificates, :through=>:certifications
  accepts_nested_attributes_for :certifications, :allow_destroy => true
end

The controller is using the inherited resource gem.

What's wrong? Thanks for the help.

回答1:

I was having the same problem until I realized the gem is out of date with the version on git. I just manually updated the gem files with the ones on git and problem fixed!



回答2:

imorsi is correct, here's how i did it:

gem "nested_form", :git => 'git://github.com/ryanb/nested_form.git'

I also removed and re-bundled the gem, but I suspect that was not necessary. don't forget to restart your server after gem installation.



回答3:

I tried that, but didnt work

So i ended up doing "bundle open nested_form" and copy pasted from github