2011-04-07 119 views
4

當我使用下面的代碼在我的Rails應用程序一個選擇菜單Rails 3中選擇菜單默認值編輯條目

控制器:

@discount_options = {'% Off' => 'percent', '$ Off' => 'dollar', '$ For' => 'flat', 'Free with Purchase Of' => 'bonus', 'Buy One Get One Free' => 'bogo' } 

視圖(一的form_for內)

<%= f.select :discount, options_for_select(@frugle_discount_options) %> 

這在創建新記錄時工作得很好。如果我回來編輯這個記錄,它總是結束默認第一個「折扣」

我覺得很奇怪很難找到有關選擇菜單的良好文檔..有人可以幫我嗎?

謝謝!

+0

我不知道爲什麼它不工作,因爲它看起來像你對我寫的東西應該好的。我會指出,除非你在Ruby 1.9.x中,否則散列不能保證以任何特定的順序返回項目,所以你應該使用一個嵌套數組作爲你的選項而不是散列。 '[''%off','percent'],['$ off','dollar'],...'] – 2011-04-07 06:09:44

回答

3

您可以通過第二個參數

options_for_select_method(@discount_options, 'bonus') 

您可以通過設置:折扣參數。

2

你應該與f.object參考:選擇

<%= f.select :discount, options_for_select(@frugle_discount_options), :selected => f.object.discount %> 
+0

不會':selected => f.object.discount'作爲最後'options_for_select'中的參數? – DnfD 2016-02-09 14:15:01