2009-04-17 65 views
11

我有一個集合中選擇這樣的:Ruby Rails集合選擇顯示空白的「提示」值?

<%= f.collection_select :region_id, Region.find(:all), :id, :name, { :prompt => 'Select a State/Province' }, :style => "width: 200px;" %> 

有時從提示:出現提示選項,但有時事實並非如此。有誰知道我可以開始排除故障嗎?也許我一直都在看它太長時間......

+0

只是爲了澄清:你是說上面的確切代碼有時起作用,有時不起作用,或者你有兩個類似代碼的集合選擇一個工作,另一個沒有? – 2010-08-31 13:22:34

回答

-1

而不是

:prompt => "Select a State/Province" 

嘗試

:allow_blank => "Select a State/Province" 

編輯:是檢查API後,我可以看到我是有困惑,提示根據文檔是正確的方式,可能它只是有時出現,因爲你的對象已經有一個值,因此提示符在那裏,但它不是下拉列表中當前選定的值?

+0

感謝您的驗證。但是,如果有選定的值,提示甚至不會出現在列表中。它是不存在的。現在,我已經在JS中入侵了它,但是對於發生了什麼我有點困惑...... – Tony 2009-04-19 06:49:37

+0

它是':include_blank`。 http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html – Chloe 2017-06-29 18:00:14

43

:include_blank與您的空白選項的值似乎是伎倆。試試這個:

{:include_blank => "Please select"} 
+1

這應該是被接受的答案(Rails 3.2.6) – 2012-09-12 05:44:18

+1

只需要注意一點:這不會考慮傳入` include_blank`如果你使用`select_tag`方法。相反,使用`prompt`。 – 2015-06-15 19:37:17

2

我一直有同樣的問題。使用'提示'似乎爲選擇標籤創建了一個屬性,問題是沒有我知道的這樣的屬性。加上它明顯不是在Rails文檔http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_from_collection_for_select中描述的內容。

使用include_blank對我來說似乎是一個很好的解決方法。

乾杯,羅賓。

+0

如果它正在創建屬性,則必須使用大括號括住提示符,例如`{prompt:true}`。這將Rails幫助器方法的選項散列與HTML元素的屬性散列分開。只有方法的最後一個散列參數可以不帶大括號。 – Chloe 2017-06-29 17:52:18

11

:prompt當沒有選定的值時出現在列表中。

:include_blank總是出現在列表中,即使您已將選定值加載到選定值。


,如果你希望你的選擇總是有"Select a State/Province"作爲第一個選項:

<%= f.collection_select :region_id, Region.all, :id, :name, include_blank: 'Select a State/Province' %> 
如果你想你的收藏有 "Select a State/Province"作爲第一個選項,只有當它不被選中的區域

<%= f.collection_select :region_id, Region.all, :id, :name, prompt: 'Select a State/Province' %> 

源:http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html

0

試試這個<%= f.collection_select :region_id, Region.all, :id, :name, {prompt: 'Select a State/Province'}, {class: "form-control"} %>