0

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

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

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

4

3 回答 3

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>
于 2013-10-06T20:49:25.473 回答
1

假设您的 $country 变量在 Country 表中具有匹配的国家/地区代码,您可以执行类似的操作。

select_tag "currency", options_from_collection_for_select(Country.all, "country_code", "currency_name", $country)
于 2013-10-06T20:50:28.407 回答
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>

请注意此处使用 Selected。

于 2013-10-06T20:51:39.113 回答