如何根据变量更改 rails 应用程序中下拉列表中的选定文本

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

本文关键字:下拉列表 文本 应用程序 rails 何根 变量      更新时间:2023-09-26

我有一个带有货币列表的选择下拉框。为了方便用户,我想在根据用户国家/地区加载页面时更改下拉列表中的默认选定值(将为此使用 geoip gem)所以我将编写这个 ruby 代码:

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

如何根据$country值更改下拉列表框的选定值?我应该用Javascript这样做吗?还是使用轨道表单助手??它的代码是什么?

您需要做的就是将国家/地区设置为selected='selected'<option>元素。 如何执行此操作取决于您如何构建选项列表。

例如,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变量在国家/地区表中具有匹配的国家/地区代码,您可以执行以下操作。

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>

注意此处选择的使用。