【发布时间】:2020-08-10 07:41:00
【问题描述】:
我从我使用 nokogiri 抓取的数据中创建了一个 ruby 哈希数组。在我的一个名为 [:contributors] 的键中,我存储了另一个包含名称列表的数组。我已验证我的数据结构中的数据正确且工作正常。
我正在尝试从我的 seed.rb 文件中植入数据以填充我的 PostgreSQL 数据库,但由于某种原因,它只填充了我的 [:contributors] 的大约一半。下面是我用来遍历我的数据结构以创建种子数据的代码:
@trending_array.each_with_index do |item, index|
Repository.create(title: item[:title], description: item[:description], language:
item[:language])
item[:contributors].each do |contributor|
Contributor.create(username: contributor, repository_id: index + 1)
end
end
我的所有迁移都正常工作,并且我的模型验证是正确的。大约一半的数据种子正确,并且所有关联都有效,但它总是在 36 个贡献者之后停止,总共 115 个。
关于为什么我的整个数据集没有正确播种的任何想法?
【问题讨论】:
-
您不应该使用数组索引来设置外键标识符,因为索引都以 0 开头,这意味着您的代码在第二次运行时总是会失败。请查看我的答案以进行澄清。
-
如果我的回答对您有所帮助,您需要接受答案。您会在我的答案的左上角找到执行此操作的按钮!询问您是否需要任何帮助:)
标签: ruby-on-rails ruby activerecord rails-activerecord seeding