在Rails中从JSON文件导入种子数据时设置对象的ID

cba*_*ass 4 json ruby-on-rails ruby-on-rails-3

我正在从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"
}
]
Run Code Online (Sandbox Code Playgroud)

我的种子文件是:

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

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

gbs*_*ice 7

对于任何想知道的人,您可以使用此语法而不是create来执行此操作:

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