我正在使用 form_for 标签,它在 Rails 3.0.4 环境中工作。但是当我尝试将我的项目更新到 Rails 4.It 给出以下错误
参数数量错误(3 代表 2)。这是我的代码
<%= form_for @email, :url => alerts_path do |f| %>
<% end %>
我正在使用 form_for 标签,它在 Rails 3.0.4 环境中工作。但是当我尝试将我的项目更新到 Rails 4.It 给出以下错误
参数数量错误(3 代表 2)。这是我的代码
<%= form_for @email, :url => alerts_path do |f| %>
<% end %>
尝试删除可能会尝试更改视图中的内容的内容。
就我而言,问题出在client_side_validations gem
希望这可以帮助。
还不知道为什么,但是从我的 Gemfile 中删除“meta_search”gem 为我在 Rails 4 上解决了这个确切的问题。
如果你用谷歌搜索这个问题,你可能会发现这个GitHub 问题将其归因于“client_side_validations”gem,但使用该 repo 的建议“rails-4-quick-fixes”分支并没有为我解决问题。
我认为这个错误simple_form_for
是一个红鲱鱼,因为即使使用 Rails built in form_for
,我也会遇到同样的错误,并且wrong number of arguments (3 for 2)
无论我实际传递了多少参数到任一方法中,我都会得到同样的错误。
meta_search 自 2012 年 2 月 2 日以来一直没有新版本,所以我只能假设 gem 中的某些东西在 Rails 4 中表现不佳。如果我发现具体问题出在哪里,我会更新这个答案。不得不“停止使用”meta_search 似乎有点蹩脚,但到目前为止我能提供的就这么多了。谢谢!
你的语法是正确的。尝试像这样更改它:
<%= form_for(@email, url: alerts_path) do |f| %>
#form fields goes here
<% end %>
我试图查看form_for
Rails 4.0 API 的源代码是否有任何变化;还是一样。
在https://github.com/rails/rails/blob/master/actionpack/lib/action_view/helpers/form_helper.rb查看第 262 行
让我知道它是否有效
我看不出您的 form_for 有任何问题,您可以发布异常的回溯吗?可能是另一个 gem 覆盖了默认 form_for ?
从您的 gem 文件中删除 gem 'meta_search',并考虑使用 gem ransack 代替。https://github.com/activerecord-hackery/ransack