是否有一个国家和城市宝石,用户可以选择一个国家并根据所选国家选择一个城市?
我得到了多种解决方案,但它们都支持州而不是城市
gem 'country_select'
gem 'countries'
gem 'carmen-rails'
我想要下拉列表中所有国家的列表,当我选择任何国家时,国家的所有城市都将出现在城市下拉列表中。这可以通过任何宝石吗?
是否有一个国家和城市宝石,用户可以选择一个国家并根据所选国家选择一个城市?
我得到了多种解决方案,但它们都支持州而不是城市
gem 'country_select'
gem 'countries'
gem 'carmen-rails'
我想要下拉列表中所有国家的列表,当我选择任何国家时,国家的所有城市都将出现在城市下拉列表中。这可以通过任何宝石吗?
使用恰当命名的城邦 gem。
如自述文件所示,您可以执行以下操作:
CS.cities(state, country)
如果您想要给定国家/地区的所有城市,无论哪个州,您都可以这样做:
CS.states(country).keys.flat_map { |state| CS.cities(state, country) }
列出所有国家:
CS.countries
很酷的是它使用来自MaxMind的数据,因此您可以确保列表是最新的。要刷新您的列表,您可以运行:
CS.update
唯一的缺点是它需要导轨(特别是主动支持)才能运行,但这在您的情况下不是问题。
你可以试试 jQuery 插件 -引导状态选择器
在您的应用程序中包含插件后
您可以像这样使用它(来自http://bootstrapformhelpers.com/state的示例):
<select id="countries_states1" class="form-control bfh-countries" data-country="US"></select>
<select class="form-control bfh-states" data-country="countries_states1"></select>
我的建议是,除非您可以 100% 确定该列表是准确和完整的(我怀疑这是否可能),否则不要这样做。
我在新加坡和其他地方的网站上注册过,我必须从下拉列表中选择不包括我的城镇(和许多其他)正确城镇(我住在美国)的城市。我被迫在很远的地方选择了一个不正确的值,因为该列表非常不完整,它不允许我不选择任何东西。
至少,如果您想提供选择,请允许用户输入未包含在这些选择中的值。
您可以使用 Bootstrap 的国家选择器 jQuery 插件,如下所示:
<select class="form-control bfh-countries" data-country="US"></select>