种子Rails来自JSON文件的SQLite数据库

时间:2017-03-24 09:54:22

标签: ruby-on-rails json sqlite ruby-on-rails-5

我是Rails的新手(使用5.0.2)。我想从JSON文件中播放空的SQLite数据库。

我将我的产品资源搭建在seed.rb中:

records = JSON.parse(File.read('/home/projects/test1/public/products.json'))
records.each do |record|
  ModelName.create!(record)
end

然后启动rake db:seed.

我收到了一个错误: 耙子流产了! JSON :: ParserError:409:' {

的意外令牌

我的JSON由具有各种属性的产品组成:

    [
  {
    "model": "Brand",
    "brand": "Brand",
    "price": 19.99,
    "currency": "GBP",
    "link1": "https://www.amazon.co.uk/Call-Duty-Ghosts-Hardened-Xbox/dp/B00ECQJ0BS/ref=pd_sim_107_4?_encoding=UTF8&psc=1&refRID=9GE6A8BW61S1FG4H3ZRJ",
    "link2": "",
    "size1": "{min: "5",max: "90"}",
    "net_weight": "263 kg",
    "size2": "{w: "19.4",h: "11.7",z: "12.7"}",
    "d1": "",
    "color": "['Black','White']",
    "materials": "plastic+concrete, glass ceiling",
    "models": "['model 1',  'model 2',  'model 3', 'model 100']",
    "props": "['prop1',  'Prop1',  'Prop1']",
    "": "",
    "size3": "{w: "100",h: "200",z: "500"}"
  },
  ]

如何修复此JSON文件并使用其中的产品数据正确播种我的数据库?

这是将手动创建的JSON文件导入Rails的最佳方式,还是尝试其他方法更好?

1 个答案:

答案 0 :(得分:1)

问题在于Array.prototype.slice.call(buffer.slice()); size1size2属性。对于每个键,该值包含双引号。如果您将它们转换为单引号或通过在它们之前放置size3来转义它们,那么您的JSON应该正确解析。