我有一个带有货币列表的选择下拉框。 为了方便用户,我希望在页面根据用户所在国家/地区加载时更改下拉列表中的默认选定值(将使用geoip gem) 所以我将编写这个ruby代码:
$country = GeoIp.geolocation(request.remote_ip, :precision => :country)
如何根据$ country值更改下拉列表框的选定值? 我应该用Javascript做到这一点吗?或者用rails形成帮手?它的代码是什么?
答案 0 :(得分:1)
您需要做的就是设置国家/地区为<option>
的{{1}}元素。如何做到这一点取决于你如何构建选项列表。
例如,options_for_select
将所选元素作为第二个参数。
selected='selected'
答案 1 :(得分:1)
假设您的$ country变量在Country表中有匹配的国家/地区代码,您可以执行以下操作。
select_tag "currency", options_from_collection_for_select(Country.all, "country_code", "currency_name", $country)
答案 2 :(得分: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>
注意使用此处选择。