我怎么做Mongoid 1:N:M有一个字段

时间:2013-07-16 18:05:15

标签: mongoid relation

我正在尝试描述与包含额外字段信息的链接表的1:N M:1关系。 table1和table3都有很多字段。

现有表格如下:

Table1      1:N   Table2       M:1   Table3
somethings        extra info         otherthings
id                table1_id          id
                  table3_id

table2.extra信息让我感到烦恼。我怎么在mongoid中描述这个?

class Model1
  include Mongoid::Document
  field :somethings, :type => String
  has_many_and_belongs_to :inbetween
end

class ModelInbetween
  include Mongoid::Document
  field :extra_info, :type => String

  ???
end

class Model2
  include Mongoid::Document
  field :otherthings, :type => String

  has_many_and_belongs_to :inbetween
end

1 个答案:

答案 0 :(得分:1)

在Mongoid中,has_manybelongs_to用于表示两个集合之间的1:N关系。 has_many_and_belongs_to仅用于N:N关系。有关官方文档,请参阅here。据我所知,你的表应该是这样的:

class Model1
  include Mongoid::Document
  field :somethings, :type => String
  has_many :modelInbetweens
end

class ModelInbetween
  include Mongoid::Document
  field :extra_info, :type => String

  belongs_to :model1
  belongs_to :model2

end

class Model2
  include Mongoid::Document
  field :otherthings, :type => String

  has_many :modelinbetweens
end

另外,请务必注意模型的复数/单数形式是否应用于定义关系。