簡體   English   中英

Ruby on rails:選擇具有默認值屬性的選項菜單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM