2016-04-20 2 views
9

Есть ли страна и город, где пользователь сможет выбрать страну и на основании выбранной страны он выберет город?Как получить список всех стран и городов в рельсах?

я получаю несколько решения, но все они поддерживают государства не город

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

Я хочу, чтобы список всех стран выпадающего списка, и когда я выбрать любую страну, то все города страны будут появляться в городах выпадающего меню. Возможно ли это через любой камень?

+0

Причина, по которой кто-то отклонил ваш вопрос, скорее всего, потому что вопросы, требующие рекомендаций в отношении библиотек, обычно считаются вне темы для SO, как указано в [Какие темы я могу задать здесь? (элемент списка 4) в справочном центре] (http://stackoverflow.com/help/on-topic). – ndn

ответ

18

Используйте метко названное city-state gem.


Как видно по README, вы можете сделать:

CS.cities(state, country) 

Если вы хотите, чтобы все города в той или иной стране, независимо от состояния, вы можете сделать:

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

Для список всех стран:

CS.countries 

Замечательно, что он использует данные от MaxMind, поэтому вы можете быть уверены, что список будет актуальным. Для того, чтобы обновить список, вы можете запустить:

CS.update 

Единственным недостатком является то, что она требует рельсов (активной поддержки специально) для запуска, но это не проблема в вашем случае.

+0

Я не уверен, почему этот ответ не был поддержан больше. Ни один из других ответов, по-видимому, не касается того, что запросил ОП - список * городов *, а не штатов или стран ... – GoGoCarl

+0

@GoGoCarl с другой стороны люди понижают мой вопрос, и я не знаю, что в этом плохого –

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> 
5

Вы можете использовать страна сборщика JQuery плагины Bootstrap следующим образом:

<select class="form-control bfh-countries" data-country="US"></select> 
+0

Ссылка на это сообщение? –

+0

@haseeb да, вы можете получить больше отсюда http://bootstrapformhelpers.com/country/ –

4

Моя рекомендация состоит в том, что если вы не можете быть 100% уверены, список точной и полной (и я сомневаюсь, что это возможно), не делают это.

Я зарегистрировался на веб-сайтах в Сингапуре и других местах, где мне нужно было выбрать из выпадающего списка городов, которые не включали мой город (и многие другие) правильные города (я живу в США). Я был вынужден выбрать неправильное значение довольно далеко, потому что список был довольно неполным, и это не позволяло мне ничего не выбирать.

По крайней мере, если вы хотите предоставить выбор, разрешите пользователю вводить значение, не включенное в эти варианты.

+0

Фокус, как всегда, заключается в использовании внешней службы. :) – ndn

+0

Я не могу утверждать, что на сайтах, о которых я упоминал, используются внешние службы, а также не являются ли все внешние службы тщательными и точными ... но это, безусловно, что-то, что нужно подвергать сомнению и проверять. –

+0

Да, возможно, только использовать список для стран, поскольку это не меняется часто, но я намерен использовать список городов и состояний для автоматического заполнения в текстовом поле свободной формы. – Chloe

Смежные вопросы