我剛剛用Rails建立了一些使用腳手架的基本模型,我編輯了這些視圖,以便我從文本框和選擇框中獲取輸入。下面是一些代碼片段:使用選擇標記的Rails驗證錯誤
form_for(@town) do |f|
f.text_field :name
.
.
f.select :county_id, @counties.map{|c| [c.name, c.id]}
.
.
end
使用該文本框的驗證方法「validates_presence_of」,並選擇框沒有驗證我可以輸入值,併成功地寫入到數據庫中。當我嘗試通過不作任何輸入到文本框進行測試驗證,我得到一個NoMethodError以下消息
You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occurred while evaluating nil.map
注:有選擇框
沒有驗證如果我註釋掉「validate_presence_of」行我可以寫入空白數據到數據庫沒有問題。但是,如果我爲textfield編寫驗證代碼,並且它導致整個表單對象變爲零顯然...是Rails的驗證導致這種情況?
任何想法/意見,非常感謝。我使用Rails 2.3.4
錯誤發生在哪裏?它是否發生在控制器,視圖或模型中?在哪一行?你究竟想要做什麼會觸發錯誤? – EmFi 2009-11-24 23:19:15