类:Mongoid::Association::Referenced::HasMany

继承:
对象
  • 对象
显示全部
包括:
Buildable WithPolymorphicCriteria Mongoid::Association::Relatable
定义于:
lib/mongoid/association/referenced/has_many.rb ,
lib/mongoid/association/referenced/has_many/eager.rb,
lib/mongoid/association/referenced/has_many/proxy.rb,
lib/mongoid/association/referenced/has_many/ Binding.rb,
lib/mongoid/association/referenced/has_many/buildable.rb,
lib/mongoid/association/referenced/has_many/enumerable.rb

Overview

has_many 关联。

在命名空间下定义

模块: 可构建 类: BindingEagerEnumerableProxy

常量摘要折叠

ASSOCIATION_OPTIONS =

除常用选项外,还可用于此类关联的选项。

返回:

  • ( Array<Symbol> )

    额外的有效选项。

[
    :after_add,
    :after_remove,
    :as,
    :autosave,
    :before_add,
    :before_remove,
    :depend,
    :foreign_key,
    :order,
    :primary_key,
    :scope,
].冻结
VALID_OPTIONS =

此关联的有效选项的完整列表,包括共享选项。

返回:

  • ( Array<Symbol> )

    有效选项。

(ASSOCIATION_OPTIONS + SHARED_OPTIONS).冻结
FOREIGN_KEY_SUFFIX =

默认外键后缀。

返回:

  • ( string )

    '_id'

'_id'.冻结

来自Mongoid::Association::Relatable的常量

Mongoid::Association::Relatable::PRIMARY_KEY_DEFAULTMongoid::Association::Relatable::SHARED_OPTIONS

实例属性摘要

Mongoid::Association::Relatable 中包含的属性

#name#options#parent_inclusions

实例方法摘要折叠

WithPolymorphicCriteria 中包含的方法

#with_poly态_criterion

Buildable中包含的方法

#build

Mongoid::Association::Relatable 中包含的方法

#==, #counter_cache_column_name, #create_relation, #destructive?, #extension, #foreign_key_check, #foreign_key_setter, #get_callbacks, #in_to?, #initialize, #inverse, #inverse_association, #inverse_class, #inverse_class_name, #inverse_setter, #inverse_type, #inverse_type_setter, #inverses, #key, #many?, #one?, #relation_class, #relation_class_name, #setter, #type_setter, #validate?

选项中包含的方法

#as , #autoBuilding? #autosave #cascading_callbacks? , #counter_cached? , #cycle? 、#depend、# forced_nil_inverse ? , #indexed? 、#inverse_of、# order 、#primary_key、# store_as # touch_field # touchable?

Constrainable中包含的方法

#convert_to_foreign_key

实例方法详细信息

# add_poly态_criterion (criteria, object_class) ⇒ Mongoid::Criteria

已弃用。

在 9.0.x

将多态查询条件添加到 Criteria 对象,如果此关联是

polymorphic.

此方法似乎是重构后留下的工件,将其重命名为“with_poly态_criterion”,并将其设为私有。 无论如何,此方法不会在其他任何地方被引用,并且不太可能对外部客户端有用。 我们应该将其删除。

参数:

  • 条件 ( Mongoid::Criteria )

    要添加到的条件对象。

  • object_class ( class )

    对象类。

返回:



142
143
144
145
146
147
148
# File 'lib/mongoid/association/referenced/has_many.rb', line 142

def add_poly态_criterion(条件, object_class)
  if 多态?
    条件.WHERE(类型 => object_class.名称)
  else
    条件
  end
end

#可绑定? (doc) ⇒ true | false

尝试使用此关联绑定对象是否会引发错误。

参数:

  • doc (文档)

    要绑定的文档。

返回:

  • ( true | false )

    是否可以绑定文档。



164
165
166
# File 'lib/mongoid/association/referenced/has_many.rb', line 164

def 可绑定?(doc)
  forced_nil_inverse? || (!!反向 && doc.字段.密钥.包括?(foreign_key))
end

#标准(base) ⇒ Mongoid::Criteria

用于查询此关联的条件。

返回:



116
117
118
# File 'lib/mongoid/association/referenced/has_many.rb', line 116

def 条件(基础)
  query_criteria(基础.发送(primary_key), 基础)
end

# embedded?false

此关联类型是否为嵌入式?

返回:

  • ( false )

    始终为 false。



94
# File 'lib/mongoid/association/referenced/has_many.rb', line 94

def 嵌入式? false end

# foreign_keystring

获取反向的外键字段,用于保存关联引用。

返回:

  • ( string )

    反向外键字段,用于保存关联引用。



86
87
88
89
# File 'lib/mongoid/association/referenced/has_many.rb', line 86

def foreign_key
  @foreign_key ||= @options[:foreign_key] ? @options[:foreign_key].to_s :
                     default_foreign_key_field
end

#nested_builder (attributes, options) ⇒ Association::Nested::Many

嵌套构建器对象。

参数:

  • 属性 (哈希)

    用于构建关联对象的属性。

  • 选项 (哈希)

    关联的选项。

返回:



174
175
176
# File 'lib/mongoid/association/referenced/has_many.rb', line 174

def nested_builder(属性, 选项)
  嵌套::很多.new(self, 属性, 选项)
end

#路径(文档)→

获取所提供文档的路径计算器。

例子:

获取路径计算器。

Proxy.path(document)

参数:

  • 文档 (文档)

    要计算的文档。

返回:

  • ( Root )

    根原子路径计算器。



186
187
188
# File 'lib/mongoid/association/referenced/has_many.rb', line 186

def 路径(文档)
  Mongoid::原子性::路径::.new(文档)
end

#多态?true | false

此关联是否具有多态性?

返回:

  • ( true | false )

    此关联是否为多态。



154
155
156
# File 'lib/mongoid/association/referenced/has_many.rb', line 154

def 多态?
  @poly态 ||= !!作为
end

#关系Association::HasMany::Proxy

获取此关联类型的关联代理类。

返回:

  • ( Association::HasMany::Proxy )

    代理类。



109
110
111
# File 'lib/mongoid/association/referenced/has_many.rb', line 109

def 关系
  代理
end

# relation_complementsArray< Mongoid::Association::Relatable >

关联补充列表。

返回:



53
54
55
# File 'lib/mongoid/association/referenced/has_many.rb', line 53

def lation_complements
  @relation_complements ||= [ 引用::属于关联 ].冻结
end

#scopeProc | Symbol | nil

获取查询关联时要应用的范围。

返回:

  • (Proc | Symbol | nil)

    关联范围(如果有)。



193
194
195
# File 'lib/mongoid/association/referenced/has_many.rb', line 193

def 范围
  @options[:scope]
end

# setup!self

在关联所属类上设置实例方法、字段等。

返回:

  • ( self )


60
61
62
63
# File 'lib/mongoid/association/referenced/has_many.rb', line 60

def setup!
  setup_instance_methods!
  self
end

# setup_instance_methods!self

在具有此关联类型的类上设置实例方法。

返回:

  • ( self )


68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/mongoid/association/referenced/has_many.rb', line 68

def setup_instance_methods!
  define_getter!
  define_ids_getter!
  define_setter!
  define_ids_setter!
  define_existence_check!
  define_autosaver!
  多态!
  define_dependency!
  @owner_class.validates_关联(名称) if validate?
  self
end

#stores_foreign_key?true

此关联类型是否存储外键?

返回:

  • ( true )

    始终为 true。



104
# File 'lib/mongoid/association/referenced/has_many.rb', line 104

def store_foreign_key? false end

#类型string | nil

注意:

仅与多态关联相关。

如果该关联是多态的,则为该关联的类型。

返回:

  • ( string | nil )

    类型字段。



125
126
127
# File 'lib/mongoid/association/referenced/has_many.rb', line 125

def 类型
  @type ||= " #{ as } _type " if 多态?
end

#validation_defaulttrue

用于验证关联对象的默认。

返回:

  • ( true )

    始终为 true。



99
# File 'lib/mongoid/association/referenced/has_many.rb', line 99

def validation_default true end