【发布时间】:2011-09-24 18:38:50
【问题描述】:
我已经为此苦苦挣扎了好几天,似乎无法弄清楚出了什么问题。我正在尝试允许模型Item 的多态文件附件,该模型属于模型Location。我的路线定义为:
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 gem 并以普通form_for 开始视图,我不会收到任何错误,并且能够成功地将单个文件附加到Item。我可以尝试在没有 gem 的情况下继续,但是(据我所知)nested_form 会自动执行一些功能,例如删除文件和生成 ajax 以添加新附件。
我只是想知道是否有人遇到过这个错误或者知道我犯了什么错误导致nested_form出现问题?我理解错误的含义,只是不确定在哪里/为什么会抛出额外的参数。非常感谢您提供的任何见解!
仅供参考我的开发设置:rails (3.1.0, 3.0.10)、nested_form (0.1.1)、carrierwave (0.5.7)
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.1 nested-forms carrierwave