[英]Ruby on rails: Select options menu with default value attribute
我需要在<options>
列表中生成一個帶有Default值的選擇菜單。 這就是我需要它的樣子。
<select name="menu[parent_id]" id="menu_parent_id">
<option value="0">==None==</option>
<option value="34">TEST</option>
</select>
目前我在表單中使用此select
助手
<%= f.select(:parent_id, @parent_menus.collect {|p| [ p.name, p.id ] }, {:include_blank => '==None=='})%>
上面的代碼產生了這個; ( value=""
)
<select name="menu[parent_id]" id="menu_parent_id">
<option value="">==None==</option>
<option value="34">TEST</option>
</select>
這里有沒有人可以告訴我一種方法來增加value="0"
到選項列表?
<%= f.select(:parent_id, [["==None==", 0]] + @parent_menus.collect {|p| [ p.name, p.id ] }) %>
我想我會把這個添加到任何想要做一個默認選擇值的人,這是下拉列表中的一個對象 ,而不是'none'值。 即,您正在編輯一個已選擇上一個值的表單,並且您不希望在編輯頁面上丟失該先前值:
假設您在@parents中擁有一組父母,並且您的表單與一個名為@my_messed_up_family的對象綁定,並且@my_messed_up_family有一個'父親':
= f.label :parent_id, "Choose which of your parents is your father?
= f.select :parent_id, options_from_collection_for_select(@parents.sort_by {|n| n.name}, "id", "name", :selected=>@my_messed_up_family.father.id)
嘗試
<%= f.select(:parent_id, options_for_select(["==None==", 0] + @parent_menus.collect {|p| [ p.name, p.id ] }, 0)) %>
我不知道這是否是Ruby方式但是這將是明確的工作
<%= f.select(:parent_id, "<option value='0'>Please select</option>"+options_for_select(@parent_menus.collect {|p| [ p.name, p.id ] }))%>
編輯。 對於根據數據庫中保存的值進行預選,我假設@user是您的對象包含以下示例的數據庫值。
<%= f.select(:parent_id, "<option value='0'>Please select</option>"+options_for_select(@parent_menus.collect {|p| [ p.name, p.id ] }, @user.id ))%>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.