2010-02-19 57 views
2

我已經在我認爲按照其顯示與國家選擇框選擇的值:頁面被submited後顯示在選擇框中Ruby on Rails的

@countries = {'United States' => 'US', 'France' => 'FR'} 
<%= select_tag 'countries', 
      options_for_select(@countries.to_a) %> 

它工作正常。現在,如果我在提交表單後出現錯誤,則以前輸入的文本字段中的所有值都會再次顯示(因此不需要重新輸入),但選擇框會重置爲默認值。

任何想法我應該包括什麼參數,以便在發生錯誤時選擇框中的值保留。

回答

1

你在哪裏存儲這個值?如果它被分配給了一些模型,那麼你的形式應該是這樣的:

<% form_for @my_object do |f| %> 
    # some fields 
    <%= f.select 'country', options_for_select(@countries.to_a) %> 
    # ... 
<% end %> 

country應該是一個字段名稱您存儲的國家模型。

如果你想與select_tag(如你的例子)來做到這一點,那麼你應該傳遞給options_for_select另一個參數:

select_tag 'countries', options_for_select(@countries.to_a, params[:countries]) 

params[:countries]應該存儲當前選擇的國家。

+0

謝謝@klew,這是我所需要的。 – Adnan 2010-02-19 11:07:57