Связанные между собой страны и города мира на русском языке в формате seeds.rb для Ruby on Rails
Ожидает приглашения
Хабр, привет! Недавно столкнулся с необходимостью создания динамических селектов стран и городов для своего проекта на Ruby on Rails Brainlook. Пришлось потратить немало времени, чтобы найти достойный дамп стран и городов на русском языке и перенести его к себе на базу в оптимизированном виде. Я решил, что было бы здорово поделиться своей разработкой с остальными разработчиками, дабы люди меньше тратили время на скучные задачи и больше — на творческие. Sharing is caring!
Файлы формата seeds.rb для Ruby on Rails, содержащие связанные между собой крупнейшие страны и города мира на русском языке. 105 стран, 10306 городов.
Позволяет посредством ввода пары простых команд наполнить базу любой структуры странами и городами.
Любому Ruby on Rails разработчику, который собирается добавить на свой проект выбор стран и городов для пользователей на русском языке.
Очень простая структура — нет ничего лишнего. У каждого города есть страна. Отсутствуют повторы. Благодаря формату seed, эти данные могут быть одинаково легко интегрированы в любой тип БД.
Предположим, у вас в проекте еще отсутствуют таблицы Cities и Countries.
Готово, вы восхитительны!
Ссылка на файлы в github.
Описание
Что это?
Файлы формата seeds.rb для Ruby on Rails, содержащие связанные между собой крупнейшие страны и города мира на русском языке. 105 стран, 10306 городов.
Зачем это?
Позволяет посредством ввода пары простых команд наполнить базу любой структуры странами и городами.
Кому это надо?
Любому Ruby on Rails разработчику, который собирается добавить на свой проект выбор стран и городов для пользователей на русском языке.
В чем преимущества?
Очень простая структура — нет ничего лишнего. У каждого города есть страна. Отсутствуют повторы. Благодаря формату seed, эти данные могут быть одинаково легко интегрированы в любой тип БД.
Так какая же структура?
table "cities"
t.string "name"
t.integer "country_id"
end
table "countries"
t.string "name"
end
Пример записей:
<City id: 173, name: "Санкт-Петербург", country_id: 1, created_at: "2013-08-25 10:13:39", updated_at: "2013-08-25 10:13:39">
<Country id: 105, name: "Япония", created_at: "2013-08-25 10:13:37", updated_at: "2013-08-25 10:13:37">
Использование
Предположим, у вас в проекте еще отсутствуют таблицы Cities и Countries.
- Создаем файлы для таблиц командой в терминале:
rails g scaffold Country name:string
rails g scaffold City name:string country_id:integer
- Прогоняем миграции для добавления таблиц к базе
rake db:migrate
- Скачиваем файл seeds.rb и меняем на свой. Либо скачиваем cities.seeds.rb и countries.seeds.rb, копируем их содержимое в файл seeds.rb своего проекта и в первую строчку вставляем
# encoding: utf-8
- Прогоняем сид
rake db:seed
Готово, вы восхитительны!
Ссылка на файлы в github.