Mongoid嵌套哈希和数组不起作用

时间:2018-08-02 13:12:25

标签: mongodb mongoid

我对使用MongoID的MongoDB有问题。我希望有人能帮助我。 DB中的对象具有以下结构。 (集合名称为崩溃)。对不起,命名不好。我必须改变这一点。

{
  id:String,
  title:String,
  new:String,
  crash:[
          {
            crash_reason:   {
              id:String,
              call:String
            },
            crashes:    [
              {
                id:String,
                app_id:String,
                info:String
              },
              {
                id:String,
                app_id:String,
                info:String
              },
              ... and many more
            ],
          },
          {
            crash_reason:   {
              id:String,
              call:String
            },
            crashes:    [
              {
                id:String,
                app_id:String,
                info:String
              },
              {
                id:String,
                app_id:String,
                info:String
              },
              ... and many more
            ],
          },
          ...
        ]
}

所以当我把它写成文字时。一个对象具有一些Main Values和一个崩溃数组。崩溃阵列包含所有崩溃。每次崩溃都再次将一些主要值作为哈希值存储在crash_reason中,此后还有另一个数组,其中包含所有崩溃信息

现在,我想使用MongoID(和Sinatra),但是当我尝试对其进行初始化时,似乎做错了。

class Crashes
  include Mongoid::Document
  field :id, type: String
  field :title, type: String
  field :new, type: String
  embeds_many :crash
  accepts_nested_attributes_for :crash
end

class Crash
  include Mongoid::Document
  embeds_one :crashreason
  embeds_many :crashesm
  embedded_in :crashes
  accepts_nested_attributes_for :crashesmulti, :crashreason
end

class Crashreason
  include Mongoid::Document
  field :id, type: String
  field :call, type: String
  embedded_in :crash
end

class Crashesmulti
  include Mongoid::Document
  field :id, type: String
  field :app_id, type: String
  field :info, type: String
  embedded_in :crash
end 

然后我要进行一个简单的查询:

get '/mongo' do
  all_c = Crashes.all
  all_c.to_json
  @mongo = all_c
  haml:mongo
end

但是我得到以下错误。我不知道我在做什么错。嵌套错误吗?我可以只嵌套不同的集合,而必须使用ARRAY和HASH类型吗?如果是,我该如何参数化它们?

NoMethodError at /mongo
undefined method `relations' for file: embedded_in.rb location: determine_inverses 

我也看了一下文档。但是关于嵌套的东西,没有太多的:-(。

0 个答案:

没有答案