2010-10-27 126 views
2

希望這只是一個快速的......兩個f.select選項之間的差異

我有一個窗體來編輯產品,每個產品都屬於一個類別。 在的form_for(@product)我可以在幾個方面對填充類別選擇框:

<%= f.select :category_id, Category.find(:all).collect{|c| [c.category, c.id]}, :prompt => "Pick a Category" %> 

或:

<%= f.select :category_id, options_from_collection_for_select(Category.find(:all), :id, :category) %> 

第一個選項編輯產品時記得類別,第二個選項沒有。 有人可以啓發我爲什麼?有沒有辦法在這種情況下使用options_from_collection_for_select並讓它在編輯時記住類別?

乾杯, 亞當

回答

0

試試這個:

<%= f.select :category_id, options_from_collection_for_select(Category.find(:all), :id, :category, params[:category_id].to_i) %> 
+0

這不記得編輯任何時候選擇什麼。我的產品表中有一個category_id,所以有一個外鍵。而且,正如我的問題中提到的<%= f.select:category_id,Category.find(:all).collect {| c | [c.category,c.id]},:prompt =>「選擇一個類別」%>完美地工作。但無法獲得任何種類的options_from_collection_for_select工作! – Adam 2010-10-30 10:41:13

1
<%= f.collection_select :category_id, Category, :id , :name %> 

確保更改:name達到要顯示的字段。這也可能是:name:title

+0

我改變了:名稱爲:類別,但我得到一個「未定義的方法'地圖'」錯誤使用此。 – Adam 2010-10-30 10:38:47