簡體   English   中英

如何基於變量在Rails應用程序的下拉列表中更改所選文本?

[英]How to change the selected text in a drop down list in rails application based on a variable?

我有一個帶有貨幣列表的選擇下拉框。 為了使用戶更方便,我想在頁面加載時根據用戶國家/地區更改下拉列表中的默認選定值(將使用geoip gem),因此我將編寫以下Ruby代碼:

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

如何根據$ country值更改下拉列表框的選定值? 我應該使用Javascript嗎? 或使用Rails表單幫助程序? 它的代碼是什么?

您所需要做的就是設置<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>

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

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

你可以嘗試這樣的事情:

<%= 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>

注意此處使用“選定”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM