【问题标题】:form_for wrong number of arguments in rails 4form_for rails 4中的参数数量错误
【发布时间】:2013-04-29 12:05:54
【问题描述】:

我正在使用 form_for 标签,它在 Rails 3.0.4 环境中工作。 但是当我尝试将我的项目更新到 Rails 4.It 时出现以下错误

参数数量错误(3 比 2)。这是我的代码

   <%= form_for @email, :url => alerts_path do |f| %>
   <% end %>

【问题讨论】:

  • 试试
  • 我也试过这个,我得到了我上面提到的同样的错误。
  • 显示控制器代码..
  • 我有 @contact 模型,并且我创建了虚拟字段 init,因为我不想存储数据,所以当时我遇到了这种错误,对我来说,解决方案是创建字段 insted使用虚拟属性。
  • 尝试 config/initializers/simple_form.rb 中的方法。我更改了 config.label_text 中的 lambda,并给了它 3 个参数而不是 2 个,它为我解决了问题

标签: ruby-on-rails ruby-on-rails-4


【解决方案1】:

尝试删除可能会尝试更改视图中的内容的内容。

就我而言,问题出在 client_side_validations gem

希望这会有所帮助。

【讨论】:

【解决方案2】:

还不知道为什么,但是从我的 Gemfile 中删除“meta_search”gem 为我在 Rails 4 上解决了这个确切的问题。

如果你用谷歌搜索这个问题,你可能会发现这个GitHub issue 将其归因于“client_side_validations”gem,但是使用该 repo 的建议“rails-4-quick-fixes”分支并没有为我解决问题.

我认为simple_form_for 的错误是一个红鲱鱼,因为即使使用内置在form_for 中的 Rails,我也遇到了同样的错误,并且无论我实际传递了多少参数到任一方法中,都会得到wrong number of arguments (3 for 2) .

meta_search 自 2012 年 2 月 2 日以来没有发布过新版本,所以我只能假设 gem 中的某些东西在 Rails 4 中表现不佳。如果我发现具体的问题是什么,我会更新这个答案.不得不“停止使用”meta_search 似乎有点蹩脚,但到目前为止我能提供的就这么多了。谢谢!

【讨论】:

  • 谢谢老兄,修复了我的问题
  • 呃哦 :-/ 我们使用 ActiveAdmin 并且 meta_search 是一个依赖项。所以如果我们想保持AA,我们就不能升级到Rails 4??
【解决方案3】:

我看不出你的 form_for 有任何问题,你能发布异常的回溯吗?可能是另一个 gem 覆盖了默认 form_for ?

【讨论】:

  • 正如流行的答案所说,client_side_validations gem 也可能导致它
【解决方案4】:

你的语法是正确的。 尝试像这样更改它:

<%= form_for(@email, url: alerts_path) do |f| %>
  #form fields goes here
<% end %>

我试图查看 Rails 4.0 API 中form_for 的源代码是否有任何变化;还是一样。

https://github.com/rails/rails/blob/master/actionpack/lib/action_view/helpers/form_helper.rb查看第 262 行

让我知道它是否有效

【讨论】:

  • 感谢您的帮助,但我已经尝试过这个解决方案,它给了我相同数量的参数错误。
  • @ZeeshanMahmood:尝试添加method: :posturl 并检查。
  • 你的alerts资源是不是?在routes.rb ?
【解决方案5】:

从您的 gem 文件中删除 gem 'meta_search',并考虑使用 gem ransack 代替。 https://github.com/activerecord-hackery/ransack

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    相关资源
    最近更新 更多