原始问题
为了减少 db/seeds.rb
中的输入量,我想知道是否存在流行的种子数据/代码,我可以从中复制和粘贴并进行少量编辑必要的。
具体来说,以下是我想要查找种子数据/代码的一些资源:
cites:特定州内的所有城市
州:美国所有州(希望是它们的缩写)
残疾:DSM-5 范围内的所有残疾
邮政编码:特定州的所有邮政编码
示例:下面我必须输入自己的内容才能为 Ethnicities 表添加种子。理想的情况是,如果其他地方有人已经将其输入,而我所要做的就是复制并粘贴它:
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
最佳答案
对于您拥有 countries gem 的国家/地区
对于城市,您有 cities gem
对于邮政编码,问题可能更大,但您也可以将它们添加为种子,就像残疾人一样。
要进行播种,请查看SeedMigration如 this blog post 中所述.
关于ruby-on-rails - Rails 的通用播种数据是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27843364/