【问题标题】:Setting ID of object when importing seed data from JSON file in Rails从 Rails 中的 JSON 文件导入种子数据时设置对象 ID
【发布时间】:2012-06-26 16:40:25
【问题描述】:

我正在从 json 文件中导入种子文件中的对象,如下所示:

[
{
    "email":"jon@a.com",
    "id":1,
    "league_id":1,
    "name":"Slim Jims are good for the heart...OH YEAH!",
    "owner":"Jon"
},
{
    "email":"robert@a.com",
    "id":2,
    "league_id":1,
    "name":"The Bucket List",
    "owner":"Robert"
}
]

我的种子文件是:

require 'json'
Team.delete_all
JSON.parse(open("#{Rails.root}/doc/teams.json").read).each do |stuff|
   Team.create(stuff)
end

我的问题是它分配了一些随机 id 而不是 json 文件中的 id。

【问题讨论】:

  • 当这些已经被设置和删除时就会出现问题。
  • 最终找到了解决方法。

标签: ruby-on-rails ruby-on-rails-3 json


【解决方案1】:

对于任何想知道的人,您可以使用以下语法而不是 create 来做到这一点:

JSON.parse(open("#{Rails.root}/doc/teams.json").read).each do |stuff|
    team = Team.new(stuff)
    team.id = stuff['id']
    team.save!
end

【讨论】:

    猜你喜欢
    • 2017-07-08
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 2019-06-16
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    相关资源
    最近更新 更多