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

时间:2013-10-06 20:37:41

标签: javascript html ruby-on-rails ruby

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

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

如何根据$ country值更改下拉列表框的选定值? 我应该用Javascript做到这一点吗?或者用rails形成帮手?它的代码是什么?

3 个答案:

答案 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>

注意使用此处选择。

相关问题