我还在练习处理数组和哈希,特别是在2d或3d结构中获取细节。我试图在json文件中使用细节来处理一些准备插入带有Active Record的数据库的数据。
这是我的json结构,用于' my_file.json'
# my_file.json
[
{
"name": "Joe Bloggs",
"telephone": "012-345-6789"
},
{
"name": "Hilda Bloggs",
"telephone": "012-345-6789"
}
]
这是我用来将json数据转换成我可以插入到我的数据库中的代码
def json_insert_to_db
require 'json'
file = File.read('my_file.json')
json_data = JSON.parse(file)
details = json_data.map do |x|
user = User.new
user.name = json_data[x]['name']
user.telephone = json_data[x]['telephone']
end
end
有了这个,我得到了
NameError: uninitialized constant User
(顺便说一句,用户确实存在于数据库中)
我无法解决我出错的地方,但我知道这是一件我能忽视的简单事情。谢谢你的帮助。
答案 0 :(得分:0)
已设置用户模型,但我的数据库存在迁移问题。但是,除此之外,当时我还无法构建导入json文件时所需的内容。
我现在已经知道如何做到这一点。迁移问题已得到解决,为清楚起见,我还首先修改了json文件的结构。
# my_file.json
{
"new_users":
[{
"name": "Joe Bloggs",
"telephone": "012-345-6789",
},
{
"name": "Hilda Bloggs",
"telephone": "012-345-6789",
}]
}
我的剧本......
require 'json'
file = File.read('my_file.json')
json_data = JSON.parse(file)['new_users']
@new_users = json_data.each do |key,value|
@new_user = User.new
@new_user.name = key['name']
@new_user.telephone = key['telephone']
end
@new_users.each { |x| puts x }