2013-04-29 50 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