2012-02-02 44 views
50

我使用的是simple_form gem,我有一個國家集合,當我選擇國家時它工作正常,並且更新的記錄將存儲國家ID,但是當我嘗試編輯記錄時,選擇的國家不是由編輯窗體中的默認值。rails,simple_form,如何在頁面加載時設置集合的選定索引?

這裏是一個編輯表單代碼:

= f.input :country_id, :collection => all_countries 

不應該simple_form從DB查看選定的國家嗎?

+0

>不應該simple_form從數據庫中查看選定的國家? 它應該是因爲simple_form只是一個圍繞rails'form_for helpers的包裝。檢查您生成的html,查看代碼中是否沒有選擇選項。 – Ineu 2012-02-02 07:13:53

+0

我認爲如果這個問題沒有使用術語「默認」會很有幫助。當我看到我認爲你正在談論的是當你之前沒有選擇任何東西時選擇的項目是什麼,而不是當你存儲了某些東西並返回頁面時。 – cesoid 2015-05-18 19:56:52

+0

是的,我已經修復它,但問題有點長:) – simo 2015-05-21 07:33:31

回答

117

您是否嘗試過使用:selected =>選項?

:selected => selected_country_id 

所以,

= f.input :country_id, :collection => all_countries, :selected => selected_country_id 

這將很好地工作!

乾杯!

+0

即'= f。 input:country_id,:collection => all_countries,:selected => selected_country_id' – 2012-11-16 05:44:25

+2

當include_blank設置爲true時,這似乎不起作用。可能這是一個錯誤? – Remo 2013-07-24 11:40:20

+0

它工作@Remo正確測試你的代碼。 – 2013-07-24 12:20:05

7

我知道這已被回答,但我來到這裏尋找類似的解決方案的複選框的集合。對於後代,你可以這樣做:

<%= f.input :country_ids, :as => :check_boxes, :collection => [['USA', :USA], ['Japan', :JPN]], :checked => [:JPN], :include_hidden => false %> 

希望這可以幫助別人。

相關問題