2012-11-09 40 views
1

我剛剛閱讀了option_from_collection_for_select的Rails API定義。options_from_collection_for_select定義

Returns a string of option tags that have been compiled by iterating over the collection and assigning the result of a call to the value_method as the option value and the text_method as the option text 

現在我是很新的軌道,以便在想,如果有人能打破這種分解成小塊,並解釋正在發生的事情,啞下來,如果你願意,對此的解釋是非常高的水平(當然對我來說此刻)

謝謝

回答

4

Ruby on Rails API使用的例子,讓我們假設你有一個具有id屬性和name屬性的Person模型。

假設您的表格創建了一個新的project並將其分配給person。也許你想有一個下拉式選擇你正在分配這個項目的person。你可以使用options_from_collection_for_select這樣的東西。

<%= f.label :person, "Assigned Person" %> 
<%= f.select(:person, options_from_collection_for_select(@people, "id", "name")) 

f的方式將在這裏指的是在我們的例子形式@project變量)。

這是什麼會做的是創建包含在在每個person您選擇下拉選項實例變量@people<option>標籤中的每一個標籤的id都會被指定爲其value屬性,並且該選項的文本將爲personname

因此,如果您@people變量包含[#<Person id: 1, name: "Brock Sampson">, #<Person id: 2, name: "Byron Orpheus">],你會得到HTML輸出是這樣的:

<label for="project_person">Assigned person"</label> 
<select id="project_person" name="project[person]"> 
    <option value="1">Brock Sampson</option> 
    <option value="2">Byron Orpheus</option> 
</select> 

這是否更有意義?

+0

哇,這是釘在頭上。非常感謝你..爲什麼api不能解釋它:) – Richlewis

+0

不客氣!很高興我能幫上忙! – Zajn

相關問題