繁体   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