模块:Mongoid::Association::Referenced::HasAndBelongsToMany::Buildable

包含在:
Mongoid::Association::Referenced::HasAndBelongsToMany
定义于:
lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb

Overview

has_and_belongs_to_many 关联的 Builder 行为。

实例方法摘要折叠

实例方法详细信息

#构建(_base, 对象, _type = nil, selected_fields = nil) ⇒ 数组<Document>

此构建器要么采用哈希值并查询对象,要么返回文档大量。

例子:

构建文档。

relation.build(association, attrs)

参数:

  • 基础 ( Object )

    基础对象。

  • 对象 ( Object )

    用于构建关联的对象。

  • 类型 ( string )

    在此上下文中未使用。

  • created_fields (nil) (默认为: nil

    必须为零。

返回:



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb', line 21

def 构建(_base, 对象, _type = nil, created_fields = nil)
  if 查询?(对象)
    # 处理 $lookup聚合中的数组哈希
    if 对象.is_a?(阵列) && 对象.全部? { |o| o.is_a?(哈希) }
      return 对象.map do |attrs|
        工厂.execute_from_db(klass, attrs, nil, created_fields, execute_callbacks: false)
      end
    end

    query_criteria(对象)
  else
    对象.try(:dup)
  end
end