模块:Mongoid::Document::ClassMethods

定义于:
lib/mongoid/ 文档.rb

Overview

Document 对象的类级方法。

实例方法摘要折叠

实例方法详细信息

# _mongoid_clear_types对象

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

清除 @_type缓存。 这通常在更改类上的鉴别器键/值时调用。

例子:

获取类型。

document._mongoid_clear_types


463
464
465
466
# File 'lib/mongoid/ 文档.rb', 第463行

def _mongoid_clear_types
  @_types = nil
  超类._mongoid_clear_types if 会遗传吗?
end

# _typesArray<Class>

返回使用此类作为基类时要查询的所有类型。

例子:

获取类型。

document._types

返回:

  • ( Array<Class> )

    当前文档的所有子类。



452
453
454
# File 'lib/mongoid/ 文档.rb', 第452行

def _types
  @_types ||= (descendants + [ self ]).uniq.map(:discriminator_value)
end

#construct_document (attrs = nil, options = {}) ⇒文档

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

注意:

Ruby 2 .x 错误导致选项哈希无法成为关键字参数。 一旦放弃支持Ruby 2 .x 的支持,我们就可以将选项哈希重新实现为关键字参数。 请参阅bugs.Ruby-lang.org/issues/ 15753

分配并构造文档。

参数:

  • attrs 哈希 (默认为: nil

    用于设立文档的属性。

  • 选项 哈希 (默认为: {}

    要使用的选项。

选项哈希 ( options ):

  • :execute_callbacks ( true | false )

    标志指定是否应运行回调。

返回:

  • (文档)

    一个新文档。



441
442
443
444
# File 'lib/mongoid/ 文档.rb', 第441行

def construct_document(attrs = nil, 选项 = {})
  execute_callbacks = 选项.获取(:execute_callbacks, 线程化.execute_callbacks?)
  with_callbacks(execute_callbacks) { new(attrs) }
end

# i 18 n_scope符号

将18范围设置为 以覆盖 ActiveModel。

返回:

  • (符号)

    :mongoid



471
472
473
# File 'lib/mongoid/ 文档.rb', 第471行

def i 18 n_scope
  :mongoid
end

#instantiate (attrs = nil, selected_fields = nil, &block) ⇒文档

仅当从数据库加载或属性已进行类型转换时,才实例化新对象。

例子:

创建文档。

Person.instantiate(:title => 'Sir', :age => 30)

参数:

  • attrs 哈希 (默认为: nil

    用于实例化的属性的哈希值。

  • created_fields 整数 (默认为: nil

    从条件中选择的字段。

返回:

  • (文档)

    一个新文档。



386
387
388
# File 'lib/mongoid/ 文档.rb', 第386行

def 实例化(attrs = nil, created_fields = nil, )
  instantiate_document(attrs, created_fields, )
end

#instantiate_document (attrs = nil, Selected_fields = nil, options = {}) {|Mongoid::Document| ... } ⇒文档

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

注意:

Ruby 2 .x 错误导致选项哈希无法成为关键字参数。 一旦放弃支持Ruby 2 .x 的支持,我们就可以将选项哈希重新实现为关键字参数。

实例化文档。

参数:

  • attrs 哈希 (默认为: nil

    用于实例化的属性的哈希值。

  • created_fields 整数 (默认为: nil

    从条件中选择的字段。

  • 选项 哈希 (默认为: {}

    要使用的选项。

选项哈希 ( options ):

  • :execute_callbacks ( true | false )

    标志指定是否应运行回调。

产量:

  • ( Mongoid::Document )

    如果给定了一个区块,则生成新实例化的文档。

返回:

  • (文档)

    一个新文档。



410
411
412
413
414
415
416
417
418
419
420
421
422
423
# File 'lib/mongoid/ 文档.rb', 第410行

def instantiate_document(attrs = nil, created_fields = nil, 选项 = {}, )
  execute_callbacks = 选项.获取(:execute_callbacks, 线程化.execute_callbacks?)
  属性 = attrs&。to_h || {}

  doc = 分配
  doc.__selected_fields = created_fields
  doc.instance_variable_set(:@attributes, 属性)
  doc.instance_variable_set(:@attributes_before_type_cast, 属性.dup)

  doc._handle_callbacks_after_instantiation(execute_callbacks, )

  doc.keep_storage_options!
  doc
end

# logger记录器

返回记录器

例子:

获取记录器。

Person.logger

返回:

  • ( Logger )

    配置的记录器或默认记录器实例。



481
482
483
# File 'lib/mongoid/ 文档.rb', 第481行

def 记录器
  Mongoid.记录器
end

# with_callbacks (execute_callbacks) ⇒对象

指示区块中是否应默认调用回调。 在可用的情况下,始终可以通过传递 'execute_callbacks: true' 来显式调用回调。

参数:

  • execute_callbacks ( true | false )

    是否应抑制回调。



367
368
369
370
371
372
373
# File 'lib/mongoid/ 文档.rb', 第367行

def with_callbacks(execute_callbacks)
  已保存, 线程化.execute_callbacks =
    线程化.execute_callbacks?, execute_callbacks
  产量
确保
  线程化.execute_callbacks = 已保存
end