模块:Mongoid::Association::Embedded::Cyclic::ClassMethods

定义于:
lib/mongoid/association/embedded/linear.rb

实例方法摘要折叠

实例方法详细信息

# recursively_embeds_many (options = {}) ⇒对象

创建循环嵌入式关联,为文档和许多嵌入式子文档创建树形层次结构。

这提供了访问父文档或其子文档的默认命名法。

例子:

设置递归嵌入许多。


class Role
  include Mongoid::Document
  recursively_embeds_many
end

前面的示例是此操作的快捷方式。


class Role
  include Mongoid::Document
  embeds_many :child_roles, :class_name => "Role", :cyclic => true
  embedded_in :parent_role, :class_name => "Role", :cyclic => true
end


39
40
41
42
43
44
45
# File 'lib/mongoid/association/embedded/linear.rb', line 39

def recursively_embeds_many(选项 = {})
  embeds_many(
      cycle_child_name,
      选项.合并(merge)(class_name: self.名称, 循环: true)
  )
  embedded_in cycle_parent_name, class_name: self.名称, 循环: true
end

# recursively_embeds_one (options = {}) ⇒对象

创建循环嵌入式关联,为父项和单个子项创建单个自引用关系。

这提供了访问父文档或其子文档的默认命名法。

例子:

设置递归嵌入。


class Role
  include Mongoid::Document
  recursively_embeds_one
end

前面的示例是此操作的快捷方式。


class Role
  include Mongoid::Document
  embeds_one :child_role, :class_name => "Role", :cyclic => true
  embedded_in :parent_role, :class_name => "Role", :cyclic => true
end


67
68
69
70
71
72
73
# File 'lib/mongoid/association/embedded/linear.rb', line 67

def recursively_embeds_one(选项 = {})
  embeds_one(
      cycle_child_name(false),
      选项.合并(merge)(class_name: self.名称, 循环: true)
  )
  embedded_in cycle_parent_name, class_name: self.名称, 循环: true
end