我正在尝试从相应的JSON结构创建一个Mongoid模型。
但是它不包含嵌入式关系框架。 我正在使用Mongoid 4.0。我做错了还是这个错误?
如果我通过 store_as 以不同于默认序列号的名称存储任何嵌入式关系,它将按预期工作。另外,如果我
JSON输入
{
"name": "MyName",
"frameworks": [
{
"name": "grails",
"runtime": "groovy",
"versions": []
}
]
}
模型
require 'mongoid'
class Vendor
include Mongoid::Document
include Mongoid::Attributes::Dynamic
# fields
field :name, type: String
# relations
embeds_many :frameworks
# validations
validates :name, presence: true
validates :frameworks, presence: true
end
class Framework
include Mongoid::Document
embedded_in :vendor
field :name, type: String
field :runtime, type: String
field :versions, type: Array
# validations
validates :name, presence: true
validates :runtime, presence: true
end
测试应用
require 'json'
require 'require_relative'
require_relative 'vendor'
begin
json = JSON.parse(File.read('input.json'))
@profile = Vendor.new(json)
puts @profile.inspect
rescue JSON::ParserError => e
puts "Error: " << e.to_s
end