2010-10-30 75 views
7

讓我先說我是Rails和StackOverflow的noob,所以請對我輕鬆點。我在我的開發箱上使用了rails3.3.8和sqlite3。在Rails中驗證失敗時,選擇提示選項會消失

我一直在使用創造了一個形式的選擇下拉如下:

<%= select("communication", "gig_id", { "Add New Gig" => "new"}, {:prompt => "-- Select Gig --"}, :onchange => "toggle(this, 'gigInfo')") %> 

然而,當別的什麼形式驗證失敗和「新」頁面進行重新渲染,我迅速消失和剩下的唯一選擇是「添加新的Gig」選項。所有我的表單都是這種情況,我似乎無法找到任何答案。

我的控制器使用基本的腳手架,所以我有點不知所措。任何幫助將不勝感激。

+0

使用:在您的選擇助手中提示消失,但使用:include_blank不。切換出來,我的提示不再消失。 – Erick 2010-11-08 17:57:20

回答

12

您的觀察結果是準確的,並且您明確地注意到:include_blank仍然存在,即使:prompt沒有。

通過將:include_blank設置爲用於提示的字符串(它不需要是布爾值),可以實現所需的結果。

:prompt,似乎只有當Rails沒有提供給定字段的值時纔會出現。當您的應用重新呈現new視圖時,提供該字段的值,因爲它創建了您的「通信」模型的實例。 (它未能保存該實例,但看起來好像該實例的字段設置爲gig_id。)