Существуют ли общие начальные данные где-нибудь для Rails?

Оригинальный вопрос

Чтобы уменьшить количество набрав db/seeds.rb Мне интересно, есть ли где-нибудь популярные исходные данные / код, из которых я мог бы просто скопировать и вставить и внести незначительные изменения в случае необходимости.

В частности, вот некоторые ресурсы, для которых я хотел бы найти начальные данные / код:

цитирует: все города в определенном государстве

Штаты: все штаты США (и, надеюсь, их сокращения)

инвалидность: все инвалидности в DSM-5

почтовые индексы: все почтовые индексы для определенного штата

Пример: ниже я должен был набрать себя, чтобы заполнить таблицу этнических групп. Что было бы идеально, если бы кто-то уже набрал его, и все, что мне нужно было сделать, это скопировать и вставить его:

ethnicity_list = [
  "American Indian/Alaska Native",
  "Asian/Pacific Islander",
  "Black/African American",
  "Caucasian",
  "Hispanic/Mexican American",
  "Multiracial",
  "Other"
]

ethnicity_list.each do |name|
  Ethnicity.create(name: name)
end

Ответ

Вот текущий лучший процесс, который я использую для посева:

  1. Найти необработанные данные (обычно их можно найти в Интернете). Скопируйте и вставьте его в текстовый файл. Возможно, вам понадобится немного отформатировать его для разбора. Пример для данных о состоянии: public/states.txt:

    Florida|FL
    Georgia|GA
    Hawaii|HI
    Idaho|ID
    ...
    
  2. Откройте файл, проанализируйте данные и затем запустите его: db/seeds.rb:

    File.open('public/states.txt', 'r') do |file|
      file.read.each_line do |state|
        name, name_abbrev = state.chomp.split("|")
        State.create(name: name, name_abbrev: name_abbrev)
      end
    end
    

3 ответа

Решение

Мое решение:

Найти необработанные данные (обычно их можно найти в Интернете). Скопируйте и вставьте его в текстовый файл. Возможно, вам понадобится немного отформатировать его для разбора. Пример для данных о состоянии: public/states.txt:

Florida|FL
Georgia|GA
Hawaii|HI
Idaho|ID
...

Откройте файл, проанализируйте данные и затем заполните их: db/seed.rb:

File.open('public/states.txt', 'r') do |file|
  file.read.each_line do |state|
    name, name_abbrev = state.chomp.split("|")
    State.create(name: name, name_abbrev: name_abbrev)
  end
end

Для стран у вас есть жемчужина стран

Для городов у вас есть жемчужина города

Для почтовых индексов это может быть более проблематично, но вы также можете добавить их в качестве начальных чисел, так же, как и для инвалидов.

Для посева, пожалуйста, взгляните на SeedMigration, как описано в этом блоге.

Для меня лучший выбор ffaker для поддельных данных + factory_girl для создания записей

Другие вопросы по тегам