web-dev-qa-db-ja.com

Rails内のすべての国と都市のリストを取得するにはどうすればよいですか?

ユーザーが国を選択し、選択した国に基づいて都市を選択できる国と都市の宝石はありますか?

複数の解決策がありますが、それらはすべて都市ではなく州をサポートしています

gem 'country_select'
gem 'countries'
gem 'carmen-Rails'

ドロップダウンにすべての国のリストが必要です。任意の国を選択すると、その国のすべての都市が都市ドロップダウンに表示されます。これはどんな宝石を通しても可能ですか?

12
user6175355

適切な名前の city-state gem を使用します。


READMEに示されているように、次のことができます。

CS.cities(state, country)

州に関係なく、特定の国のすべての都市が必要な場合は、次のようにすることができます。

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

すべての国を一覧表示するには:

CS.countries

すばらしいのは、 MaxMind のデータを使用するため、リストが最新であることを確認できることです。リストを更新するには、次のコマンドを実行します。

CS.update

唯一の欠点は、実行するためにRails(特にアクティブサポート)が必要なことですが、これはあなたの場合は問題ではありません。

20
ndnenkov

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>
6
yozzz

BootstrapのカントリーピッカーjQueryプラグインは、次のように使用できます。

<select class="form-control bfh-countries" data-country="US"></select>
5
Dharmesh Rupani

私の推奨は、リストが正確で完全であると100%確信できない限り(そしてそれが可能であることに懐疑的です)、しないでください

私はシンガポールや他の場所のWebサイトに登録しましたが、自分の町(および他の多くの)正しい町(私は米国に住んでいます)が含まれていない都市のドロップダウンリストから選択する必要がありました。リストがかなり不完全で、何も選択できないため、かなり遠くにある間違った値を選択することを余儀なくされました。

少なくとも、選択肢を提供する場合は、それらの選択肢に含まれていない値をユーザーが入力できるようにします。

4
Keith Bennett