我一直在为这几天苦苦挣扎,似乎无法弄清楚什么是错的。我正在尝试将多态文件附件添加到型号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)
谢谢!我无法相信这就是它的全部。我见过[这篇文章](http://stackoverflow.com/questions/6655674/rails-simple-nested-form-for-fields-for-wrong-number-of-arguments)其中评论提到的版本是的日期...但是我的版本号匹配和帖子是从七月,所以我认为rubygems已经更新,我从来没有再给它一个想法。再次感谢,感谢您的时间。你规则:) – Denny