【问题标题】:Error with nested_form gem: wrong number of arguments (4 for 3)nested_form gem 错误:参数数量错误(4 对 3)
【发布时间】: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


    【解决方案1】:

    为了让 nested_form 与 rails 3.1 一起工作,我不得不从 github 中提取最新的内容,而不是使用 gem 中的内容。在我的 Gemfile 中:

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

    【讨论】:

    • 谢谢!我不敢相信这就是全部。我见过this post,其中评论提到版本已过时......但是我的版本号匹配并且帖子是从七月开始的,所以我认为 ruby​​gems 已经更新,我从来没有考虑过。再次感谢,感谢您的时间。你统治:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    相关资源
    最近更新 更多