2013-10-06 26 views
0

我有一個選擇下拉框與貨幣列表。 爲了讓用戶更容易,我想改變下降的默認選定值下降時,根據用戶的國家的頁面加載(將使用geoip寶石爲) 所以我會寫這個Ruby代碼:如何根據變量在Rails應用程序的下拉列表中更改所選文本?

$country = GeoIp.geolocation(request.remote_ip, :precision => :country) 

如何更改基於$國家值下拉列表框中選擇的值? 我應該用Javascript來做到這一點嗎?或用導軌形式助手?它的代碼是什麼?

回答

1

所有您需要做的就是設置<option>元素,其國家爲selected='selected'。你怎麼做取決於你如何構建選項列表。

例如,options_for_select取所選擇的元素作爲第二參數。

options_for_select(['Alpha', 'Beta', 'Gamma'], 'Beta') 
# => <option value="Alpha">Alpha</option> 
# => <option value="Beta" selected="selected">Beta</option> 
# => <option value="Gamma">Gamma</option> 
1

假設您的$ country變量在您的國家/地區表中具有​​匹配的國家/地區代碼,則可以執行此類操作。

select_tag "currency", options_from_collection_for_select(Country.all, "country_code", "currency_name", $country) 
1

你可以嘗試這樣的事:

<%= f.select :someobj, options_for_select({ "Basic" => "$20", "Plus" => "$40" }, $country) %> 

它會給你:

<select name="someobj"> 
<option value="$20">Basic</option> 
<option value="$40" selected="selected">Plus</option> 
</select> 

注意使用此選擇。

相關問題