类:Mongoid::Factory::Instantiator Private

继承:
对象
  • 对象
显示全部
定义于:
lib/mongoid/factory.rb

Overview

此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。

一个助手类,用于直接使用其类型类或通过鉴别器键指定的类型类来实例化模型。

实例属性摘要折叠

实例方法摘要折叠

构造函数详情

#initialize (klass,Attributes,Criteria,Selected_Fields) ⇒实例化

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

创建一个新的 Factory::Initiator。

参数:

  • klass ( Mongoid::Document )

    实例化模型时要引用的主节点 (primary node in the replica set)类。

  • 属性 ( Hash | nil )

    (可选)实例化模型时使用的属性哈希。

  • 条件 ( Mongoid::Criteria | nil )

    (可选)用作所选字段从节点(secondary node from replica set)来源的条件对象;也用于设置反向关联。

  • created_fields ( Array | nil )

    应显式(且以独占方式)包含在新记录中的字段名称列表。



46
47
48
49
50
51
52
53
# File 'lib/mongoid/factory.rb', line 46

def 初始化(klass, 属性, 条件, created_fields)
  @klass = klass
  @attributes = 属性
  @criteria = 条件
  @selected_fields = created_fields ||
                     (条件 && 条件.选项[:fields])
  @type = 属性 && 属性[klass.discriminator_key]
end

实例属性详细信息

#属性哈希 | nil (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回实例化模型时要使用的属性的哈希值。

返回:

  • ( Hash | nil )

    实例化模型时要使用的属性哈希。



19
20
21
# File 'lib/mongoid/factory.rb', line 19

def 属性
  @attributes
end

#标准="Mongoid::Criteria | Mongoid::Criteria nil (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回值 用作所选字段从节点(secondary node from replica set)来源的条件对象;也用于设置反向关联。

返回:

  • ( Mongoid::Criteria | nil )

    用作所选字段从节点(secondary node from replica set)来源的条件对象;也用于设置反向关联。



24
25
26
# File 'lib/mongoid/factory.rb', line 24

def 条件
  @criteria
end

# klassMongoid::Document (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 被引用的主节点 (primary node in the replica set)模型类。

返回:

  • ( Mongoid::Document )

    被引用的主节点 (primary node in the replica set)模型类



15
16
17
# File 'lib/mongoid/factory.rb', line 15

def klass
  @klass
end

#selected_fields数组 | nil (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 应显式(且仅)包含在新记录中的字段名称列表。

返回:

  • ( Array | nil )

    应显式(且以独占方式)包含在新记录中的字段名称列表。



28
29
30
# File 'lib/mongoid/factory.rb', line 28

def created_fields
  @selected_fields
end

#类型string | nil (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 如果是多态类规范,则应加载和实例化的类的标识符。

返回:

  • ( string | nil )

    在多态类规范的情况下,应加载和实例化的类的标识符。



33
34
35
# File 'lib/mongoid/factory.rb', line 33

def 类型
  @type
end

实例方法详细信息

实例 (execute_callbacks: Threaded.execute_callbacks?) ⇒ Mongoid::Document

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

构建并返回所请求类的新实例。

参数:

  • execute_callbacks ( true | false ) (默认为: Threaded.execute_callbacks?

    是否应使用新实例调用文档回调。

返回:

引发:

  • ( Errors::UnknownModel )

    当请求的类型不存在,或者不响应“实例化”方法时。



64
65
66
67
68
69
70
# File 'lib/mongoid/factory.rb', line 64

def 实例(execute_callbacks: 线程化.execute_callbacks?)
  if 类型.空白?
    instantiate_Without_type(execute_callbacks)
  else
    instantiate_with_type(execute_callbacks)
  end
end