ruby-on-rails - Rails 的通用播种数据是否存在?

标签 ruby-on-rails ruby database

原始问题

为了减少 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

回答

这是我当前用于播种的最佳流程:

  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
    

最佳答案

对于您拥有 countries gem 的国家/地区

对于城市,您有 cities gem

对于邮政编码,问题可能更大,但您也可以将它们添加为种子,就像残疾人一样。

要进行播种,请查看SeedMigrationthis blog post 中所述.

关于ruby-on-rails - Rails 的通用播种数据是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27843364/

相关文章:

ruby-on-rails - Ruby on Rails 计算百分位数的方法——可以重构吗?

ruby-on-rails - Button_to 仅间歇性地工作,并且经常导致 "no route"错误

ruby-on-rails - 从两个 id 创建 rails 记录

ruby-on-rails - 为什么回形针上传给出尝试链接错误?

mysql - 插入方法之间有什么区别?为什么其中一种更快?

ruby-on-rails - 将瘦网络服务器作为 Windows 服务运行

javascript - 单击时,将变量从 Javascript 传递到 Rails/Ruby

ruby - 如何从哈希创建 Ruby GraphQL InputObject 实例?

database - 仅当根据 Firebird/Interbase 中的检查约束有效时,如何才能在表之间复制记录?

mysql查询疑问