6

我一直在为这几天苦苦挣扎,似乎无法弄清楚什么是错的。我正在尝试将多态文件附件添加到型号Item,该型号属于Location型号。nested_form gem错误:参数数量错误(4为3)

resources :locations do 
    resources :items 
    post :sort 
end 

resources :items do 
    resources :assets #model for attachments 
end 

我跟着a tutorial究竟该用carrierwave和nested_form做:因为我的路由定义。但是,在设置完所有内容后,请求Item型号的New动作时出现以下错误:wrong number of arguments (4 for 3)。它告诉我的错误是在这一观点的第7行发生:

<%= nested_form_for [@location, @item], :html => { :multipart => true } do |f| %> 
    <p> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
    </p> 

    <%= f.fields_for :assets do |a_form| %> ### LINE 7 #### 
    <p> 
     <%= a_form.label :file %><br /> 
     <%= a_form.file_field :file %> 
     <%= a_form.hidden_field :file_cache %> 
    </p> 
    <%= a_form.link_to_remove "Remove this attachment" %> 
    <% end %> 

    <%= f.link_to_add "Add attachment", :assets %> 
    <p><%= f.submit %></p> 
<% end %> 

如果我不使用nested_form宝石,然后用常规form_for开始就认为,我没有得到任何错误,我能够成功连接单个文件到Item。我可以尝试和没有宝石,但(据我所知),nested_form会自动化一些功能,如删除文件和生成Ajax添加新的附件。

我只是想知道是否有人遇到这个错误或知道我在做什么错误,这是造成nested_form问题?我明白错误意味着什么,只是不确定在哪里/为什么会引入额外的参数。我非常感谢您提供的任何见解!

FYI我的dev的设置:轨(3.1.0,3.0.10),nested_form(0.1.1),carrierwave(0.5.7)

回答

15

为了得到nested_form与导轨3.1的工作,我不得不从github中取出最新的内容,而不是使用宝石中的内容。在我的Gemfile中:

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

谢谢!我无法相信这就是它的全部。我见过[这篇文章](http://stackoverflow.com/questions/6655674/rails-simple-nested-form-for-fields-for-wrong-number-of-arguments)其中评论提到的版本是的日期...但是我的版本号匹配和帖子是从七月,所以我认为rubygems已经更新,我从来没有再给它一个想法。再次感谢,感谢您的时间。你规则:) – Denny

相关问题