2013-03-26 70 views
1

我已升級到rails 3.2.13,並且正在遷移舊應用程序以在新環境(ruby1.9.3)中運行。該應用程序與ruby192和rails 3.0.0運行良好。在form_for方法中參數的錯誤數量(3爲2)

試圖創造一個新的記錄,當我收到此錯誤(2 3)(消防隊員)

錯誤的參數數目

這裏是我爲我的表單代碼

<%= form_for :fire_fighter, @fire_fighter, :url => { :action => "create" } do |f| %> 

根據閱讀其他職位,他們建議刪除「fire_fighter」,但它看起來像這樣

<%= form_for :@fire_fighter, :url => { :action => "create" } do |f| %> 

這實際上確實讓網頁渲染,但是當我試圖進入填寫文本字段,並提交或創建數據庫中的記錄,我得到的是說,這是內置到應用程序的錯誤消息:That the fields were all left blank

所有的字段設置爲字符串。

哦,顯然我在提交之前填寫了所有這些字段。所以現在我只是卡住了。

任何幫助,將不勝感激謝謝。

回答

5

儘管當您發佈頁面源代碼和其他表單代碼時,此答案可能會發生變化,但您試圖從實例變量中創建一個符號。

<%= form_for :@fire_fighter, :url => { :action => "create" } do |f| %> 

通知:@fire_fighter。它應該是@fire_fighter。那麼正確的代碼應該是

<%= form_for @fire_fighter, :url => { :action => "create" } do |f| %> 

爲什麼你使用像@fire_fighter實例變量是因爲在你的控制器應該有類似

def new 
    @fire_fighter = FireFighter.new 
end 

這樣的原因,形式是直接抓取實例從控制器變量到表單上。符號不會從控制器橫切到視圖,而是實例變量,因此使用@fire_fighter作爲form_for方法中的第一個參數。

相關問題