2011-02-03 88 views
0

我有這個問題,我得到的下拉菜單顯示但選定的選項沒有顯示出來。下面的代碼我必須產生在.erb選擇下拉菜單:Ruby on Rails中的選擇下拉列表:選擇的值沒有被拾取

<%= collection_select("url", "source_type_id", @source_types, :id, :name, {:prompt => "Please select..."}) %> 

@source_types填充在從被綁定到模型中的查找表的控制器。 @url_object是模型:

@source_types = SourceType.all 

的由於模型是聯繫在一起的查找表的方式:

belongs_to :source_type 

@url_object.source_type_id返回數值,@url_object.source_type從查找表返回相關的名稱。

<select id="url_source_type_id" name="url[source_type_id]"><option value="">Please select...</option> 
<option value="1">Dictionary/Thesaurus</option> 
<option value="2">Encyclopedia</option> 
<option value="3">Magazine</option> 
<option value="4">Map/Atlas</option> 
<option value="5">Newspaper</option> 
<option value="6">Reference Tools</option></select> 

我讀了API這個方法和含義是,如果source_type_id存在的collection_select將自動地把它撿起來,並設置選擇的值,但這顯然不會發生。

我希望有人會看到我在這裏做什麼明顯的錯誤......

+0

「不顯示」是什麼意思?在視圖中還是當你保存它?你的表單是什麼樣的? – pjammer 2011-02-03 14:22:26

+0

啊,我的意思是該選項沒有顯示爲選定的...默認的一個總是顯示。事實證明,我忘記了(不知道)方法調用設置的選項:selected => someint。 – jaydel 2011-02-03 14:33:47

回答

1

希望這將有助於 <%= f.select:source_type_id,@ source_types.collect {| P | [p.name,p.id]},params [:source_type_id]%>

相關問題