2010-10-24 112 views
0

我認識到我可以在選擇框內使用options_from_collection_for_select來顯示其中的選項列表。如果我添加(first.id),它將選擇第一個選項作爲默認預選。例如:options_from_collection_for_select避免刷新問題

options_from_collection_for_select(@hauses, 'id', 'timebuild', @hauses.first.id) 

然而,如果在index.rhtml裏,我把這個選擇框與第一個選項爲默認的選擇,每次我刷新頁面,它仍然會再次選擇第一個選項,而不是當前選擇。

請親切指導,我怎樣才能改變上面的參數,所以當用戶,例子選擇了選項2,然後刷新頁面,它不會改變爲選項1,但仍然在選項2中。同樣只適用於第一個它會顯示選項1(默認)。

謝謝

+0

你如何刷新頁面?正確刷新時選擇不會改變... – Lichtamberg 2010-10-24 11:29:00

+0

它確實發生了變化。從下拉菜單中選擇,如果我把鼠標放到第二個選項上,然後按f5鍵,它會再次進入第一次選擇。 – heike 2010-10-24 18:42:20

回答

0

好的,所以你希望選擇框有一個默認值。涼。但是你不應該在options_from_collection中設置它。

你應該將它設置在對象,該ID將被存儲在。

方法簽名爲

options_from_collection_for_select(collection, value_method, text_method, selected = nil) 

因此,所選擇的應該是你選擇的值。如果你正在做的事情一樣

form_for @super_cool do |f| 
    ... 
    select_tag... 
    options_from_collection_for_select(@hauses, 'id', 'timebuild', @super_cool.hause_id) 

此外,collection_select是在我的例子很容易...,

form_for @super_cool do |f| 
    ... 
    f.collection_select :hause_id, @hauses, :id, :timebuild