我正在使用form_for标签,它在Rails 3.0.4环境中工作。 但是当我尝试将我的项目更新为Rails 4.它会出现以下错误
错误的参数数量(3个用于2)。这是我的代码
<%= form_for @email, :url => alerts_path do |f| %>
<% end %>
答案 0 :(得分:23)
尝试删除可能尝试更改视图中内容的内容。
在我的情况下,问题出在 client_side_validations gem
希望这有帮助。
答案 1 :(得分:9)
不知道为什么,但是从我的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)
我实际上已经进入了任何一种方法。
答案 2 :(得分:0)
您的语法是正确的。 尝试改变它:
<%= 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行让我知道它是否有效
答案 3 :(得分:0)
我看不到你的form_for有任何问题,你能发布异常的回溯吗?可能是另一个宝石覆盖默认的form_for?
答案 4 :(得分:0)
删除gem&#39; meta_search&#39;从您的宝石文件,并考虑使用宝石搜索。 https://github.com/activerecord-hackery/ransack