2014-12-07 34 views
1

我想爲集合製作一個選擇框。我使用方法options_for_select但它只生成​​3210字段,而不是<select></select>外部。 這裏是我的代碼:Rails:生成表單的選擇框

<% categories_array = Category.all.map{|category| [category.name, category.id]} %> 
<%= options_for_select(categories_array) %> 

這裏是結果:

<option value="5483c910485559047a000000">Programming</option> 
<option value="5483c921485559047a010000">Business</option> 
<option value="5483c92b485559047a020000">Game Programming</option> 

但我預計:

<select id = "categoryId"> 
    <option value="5483c910485559047a000000">Programming</option> 
    <option value="5483c921485559047a010000">Business</option> 
    <option value="5483c92b485559047a020000">Game Programming</option> 
</select> 

此外,發佈此表單服務器時,我能得到這個值。我怎樣才能做到這一點

謝謝:)

回答

2

你可以看到選項如何選擇和助手在這裏結合:

http://guides.rubyonrails.org/form_helpers.html#making-select-boxes-with-ease

如前所述有:

<%= select_tag(:city_id, options_for_select(...)) %> 
+0

謝謝:)我想再多一點。在生成的html代碼中:首先用'option'選擇'option'。還有什麼方法可以讓它在新線上?我知道這不會影響程序的運行方式,但可以讓我輕鬆地閱讀代碼並在以後進行調試。謝謝:) – hqt 2014-12-07 13:12:31

+0

你的意思是改變HTML(源)輸出的格式?你可以嘗試不同的選擇,但是由於這是Rails/ERB/Erubis很長一段時間的寵兒,所以最終放棄對格式化輸出的期望。 (Haml在這方面比較好,但我更喜歡Erubis。) – 2014-12-07 13:18:50

+0

如果您需要以更結構化的方式檢查輸出的HTML,使用Firebug或Firefox/Chrome開發者工具來檢查源可能是更好的選擇。 – 2014-12-07 13:23:00