2013-03-13 41 views
1

我要生成一個選項標籤是這樣的:如何爲options_from_collection_for_select中的每個選項動態生成唯一的名稱?

<option name="option_1" value="1">Small</option> 
<option name="option_2" value="2">Medium</option> 

使用我的電話是這樣的:

<%= select_tag option.name, options_from_collection_for_select(option.option_values, "id", "name"), include_blank: true %> 

獲取我中途有,通過產生這樣的:

<option value="1">Small</option> 
<option value="2">Medium</option> 

如何使用此結構將name屬性添加到選項標籤?這甚至有可能嗎?

回答

1
select_tag option.name, options_for_select(option.option_values.map{ |o| [o.name, o.id, {:name_or_smth_else => "option_#{o.id}"}] }) 

options_for_select

+0

完美...這正是我正在尋找的。謝謝! – marcamillion 2013-03-13 10:25:17

1

選項標籤沒有name屬性。該name屬性應在select標籤來定義:

<select name="name"> 
    <option value="1">Small</option> 
    <option value="2">Medium</option> 
</select> 

更多信息,請參見本頁面 - http://www.w3schools.com/tags/tag_option.asp

+0

所以...我怎麼唯一識別每個選項?任何方式來做到這一點? – marcamillion 2013-03-13 10:11:23

+0

Hrmm ...看起來像它可以允許一個'label'屬性 - http://www.w3schools.com/tags/att_option_label.asp我該如何使用該rails helper做到這一點? – marcamillion 2013-03-13 10:12:49

+0

是否有你不想使用'value'屬性的原因?如果'value'屬性是模型ID,那麼它將是唯一的。 – Sam 2013-03-13 10:14:35

相關問題