如何获得铁路所有国家和城市的列表?

时间:2016-04-20 07:03:12

标签: ruby-on-rails ruby rubygems countries

是否有国家和城市宝石用户可以选择国家/地区并根据所选国家选择城市?

我得到多个解决方案,但他们都支持州而不是城市

gem 'country_select'
gem 'countries'
gem 'carmen-rails'

我想要一个下拉列表中的所有国家/地区,当我选择任何国家/地区时,所有国家/地区的城市都会显示在城市下拉列表中。这可以通过任何宝石吗?

4 个答案:

答案 0 :(得分:19)

使用名称恰当的city-state gem

正如README所见,你可以这样做:

CS.cities(state, country)

如果您想要某个国家/地区的所有城市,无论州,您都可以:

CS.states(country).keys.flat_map { |state| CS.cities(state, country) }

列出所有国家/地区:

CS.countries

很酷的是它使用来自MaxMind的数据,因此您可以确保列表是最新的。要刷新列表,您可以运行:

CS.update

唯一的缺点是它需要运行轨道(特别是主动支持)才能运行,但在您的情况下这不是问题。

答案 1 :(得分:6)

您可以尝试使用jQuery插件 - bootstrap state picker

在您的应用程序中包含插件后

您可以像这样使用它(来自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>

答案 2 :(得分:5)

您可以使用Bootstrap的国家选择器jQuery插件,如下所示:

ContentControl

答案 3 :(得分:4)

我的建议是,除非您100%确定该列表准确且完整(并且我怀疑这是可能的), 不要这样做

我已在新加坡和其他地方的网站上注册,我必须从不包括我的城镇(以及许多其他)正确城镇(我居住在美国)的城市下拉列表中进行选择。我被迫在很远的地方选择了一个不正确的值,因为该列表非常不完整,并且不允许我不选择任何内容。

至少,如果您想提供选择,请允许用户输入未包含在这些选项中的值。