2011-03-01 103 views
7

我有一個select_tag從我用來執行搜索的@users數組填充。當用戶第一次登錄頁面時,我希望它顯示空白或自定義標籤,而不是數組中的第一項?Rails 3 - select_tag helper - 空白選項標記

這是一個使用select_tag幫助器的選項嗎?要插入一個空白的「」選項?

我至今幫手:

<%= select_tag :search_user, options_from_collection_for_select(@users, "id", "name"), :class => 'submittable'%> 

回答

16

您可以使用如記錄here選項:include_blank => true

0

因此,而不是使用options_from_collections_for_select方法,我是能夠插入一項使用options_for_select我的數組。與我上面的代碼相比,我在下面的代碼段中插入了「everyone」。

<%= select_tag :search_user, options_for_select(@users.collect{ |user| [user.name, user.id] }.insert(0,"Everyone")), :class => 'submittable'%> 
3

我認爲正確的方法是

:提示=> 「文本」

0

Ruby on Rails 4.0.4 ActionView::Helpers::FormOptionsHelper

:提示 - 設置爲true或提示字符串。當選擇元素 還沒有值時,這會提前選擇一個帶有通用 提示的選項 - 「請選擇」 - 或給定的提示字符串。

選擇(「後」,「爲person_id」,Person.all.collect {| P | [p.name,p.id]},{提示: '選擇的人'})

可能成爲:

<select name="post[person_id]"> 
    <option value="">Select Person</option> 
    <option value="1">David</option> 
    <option value="2">Sam</option> 
    <option value="3">Tobias</option> 
</select>