无法从JSON创建正确的Mongoid模型

时间:2014-08-12 15:01:24

标签: ruby json mongoid mongoid4

我正在尝试从相应的JSON结构创建一个Mongoid模型。

但是它不包含嵌入式关系框架。 我正在使用Mongoid 4.0。我做错了还是这个错误?

如果我通过 store_as 以不同于默认序列号的名称存储任何嵌入式关系,它将按预期工作。另外,如果我从JSON创建数据库中的模型而不是初始化它一切都很好......

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

0 个答案:

没有答案