2013-04-29 80 views
8

我正在使用form_for标记,它在Rails 3.0.4环境中工作。 但是,当我试图将我的项目更新到Rails 4时。它给出以下错误form_for rails中的参数数量错误4

参数的错误数目(3代表2)。这是我的代码

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

只需尝试<%= form_for @email do | f | %> <% end %> – 2013-04-29 12:12:29

+1

我也试过这个,我得到了上面提到的同样的错误。 – 2013-04-29 12:14:08

+0

显示控制器代码.. – 2013-04-29 12:30:27

回答

0

我看不出有任何问题与您的form_for,你能张贴的异常回溯?可能是另一个宝石是否覆盖默认的form_for?

+5

是的问题是因为另一个宝石“meta_search”。 – 2013-04-29 13:33:55

+1

作为流行的答案说,client_side_validations宝石也可以导致它 – nurinur 2015-07-13 07:27:35

0

您的语法无误。 尝试改变它像这样:

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

我想看看是否有在Rails的4.0 API在源代码中的任何改变的form_for;它仍然是一样的。

看一看262线在https://github.com/rails/rails/blob/master/actionpack/lib/action_view/helpers/form_helper.rb

让我知道,如果它

+0

感谢您的帮助,但我试过这个解决方案,它给了我同样错误数量的参数错误。 – 2013-04-29 12:28:54

+0

@ZeeshanMahmood:尝试与'url'一起添加'method::post'并检查。 – kiddorails 2013-04-29 12:31:12

+0

我也试过,但这也不能帮助我。 – 2013-04-29 12:32:41

23

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

在我的情况的问题是与client_side_validations宝石

希望这有助于。

+0

谢谢。上帝祝福你! – ck3g 2014-04-03 19:51:07

+2

是什么问题?你是如何解决它的? – coorasse 2014-05-06 11:49:07

+0

这已被记录和固定在git:https://github.com/DavyJonesLocker/client_side_validations/issues/603 我刚刚更改我的Gemfile指向github,它修复了问题 – Tigraine 2015-04-23 16:38:20

9

不知道为什么还没有,但删除从我的Gemfile的“meta_search”宝石固定这个确切的问题对于我来说on Rails的4

如果谷歌这个问题,你会发现这个GitHub issue它是属性的“client_side_validations “宝石,但使用该回购的建议”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似乎有些跛脚,但这与迄今为止我所能提供的一样。谢谢!

+0

感谢芽,那固定的地雷 – 2013-10-07 02:42:44

+1

呃哦: - /我们使用ActiveAdmin,meta_search是一个依赖项。所以我们不能升级到Rails 4,如果我们想保持AA? – sixty4bit 2015-01-16 19:32:54

相关问题