原始问题
为了减少db/seeds.rb
中的输入量,我想知道是否存在我可以复制和粘贴的热门种子数据/代码,并根据需要进行少量编辑。
具体来说,这里有一些资源我想找到种子数据/代码:
引用:特定州内的所有城市
州:所有美国州(并希望他们的缩写)
残疾:DSM-5中的所有残疾
zip-codes :特定州的所有邮政编码
示例:下面我必须输入自己才能播种种族表。理想的是,如果其他地方有人已经输入了它,我所要做的就是复制并粘贴它:
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
答案
以下是我目前用于播种的最佳流程:
查找原始数据(通常可以在互联网上找到)。将其复制并粘贴到文本文件中。您可能需要对其进行格式化以进行解析。国家数据示例:public/states.txt
:
Florida|FL
Georgia|GA
Hawaii|HI
Idaho|ID
...
打开文件,解析数据,然后播种: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
答案 0 :(得分:3)
对于您拥有countries gem
的国家/地区对于拥有cities gem
的城市对于邮政编码,它可能更有问题,但您也可以将它们作为种子添加为残疾人。
有关播种,请按照SeedMigration中的说明查看this blog post。
答案 1 :(得分:0)
为我提供假数据的最佳选择ffaker + factory_girl以生成记录
答案 2 :(得分:0)
我的解决方案:
查找原始数据(通常可以在互联网上找到)。将其复制并粘贴到文本文件中。您可能需要对其进行格式化以进行解析。状态数据示例:public / states.txt:
Florida|FL
Georgia|GA
Hawaii|HI
Idaho|ID
...
打开文件,解析数据,然后播种: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