类:Mongoid::Association::Referenced::HasMany
- 继承:
-
对象
- 对象
- Mongoid::Association::Referenced::HasMany
- 定义于:
- 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 关联。
在命名空间下定义
模块: 可构建 类: Binding 、 Eager 、 Enumerable 、 Proxy
常量摘要折叠
- ASSOCIATION_OPTIONS =
除常用选项外,还可用于此类关联的选项。
[ :after_add, :after_remove, :as, :autosave, :before_add, :before_remove, :depend, :foreign_key, :order, :primary_key, :scope, ].冻结
- VALID_OPTIONS =
此关联的有效选项的完整列表,包括共享选项。
(ASSOCIATION_OPTIONS + SHARED_OPTIONS).冻结
- FOREIGN_KEY_SUFFIX =
默认外键后缀。
'_id'.冻结
来自Mongoid::Association::Relatable的常量
Mongoid::Association::Relatable::PRIMARY_KEY_DEFAULT 、 Mongoid::Association::Relatable::SHARED_OPTIONS
实例属性摘要
Mongoid::Association::Relatable 中包含的属性
#name 、 #options 、 #parent_inclusions
实例方法摘要折叠
-
# add_poly态_criterion (criteria, object_class) ⇒ Mongoid::Criteria
已弃用
已弃用。
在 9.0.x
-
#可绑定? (doc) ⇒ true | false
尝试使用此关联绑定对象是否会引发错误。
-
#标准(base) ⇒ Mongoid::Criteria
用于查询此关联的条件。
-
# embedded? ⇒ false
此关联类型是否为嵌入式?
-
# foreign_key ⇒ string
获取反向的外键字段,用于保存关联引用。
-
#nested_builder (attributes, options) ⇒ Association::Nested::Many
嵌套构建器对象。
-
#路径(文档)→ 根
获取所提供文档的路径计算器。
-
#多态? ⇒ true | false
此关联是否具有多态性?
-
#关系⇒ Association::HasMany::Proxy
获取此关联类型的关联代理类。
-
# relation_complements ⇒ Array<Mongoid::Association::Relatable>
关联补充列表。
-
#作用域⇒ Proc |符号 | nil
获取查询关联时要应用的范围。
-
# 设置! ⇒ self
设置实例方法、字段等。
-
# setup_instance_methods! ⇒ self
在具有此关联类型的类上设置实例方法。
-
#stores_foreign_key? ⇒ true
此关联类型是否存储外键?
-
#类型⇒ string | nil
如果该关联是多态的,则为该关联的类型。
-
# validation_default ="true"
用于验证关联对象的默认。
WithPolymorphicCriteria 中包含的方法
Buildable中包含的方法
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中包含的方法
实例方法详细信息
# add_poly态_criterion (criteria, object_class) ⇒ Mongoid::Criteria
在 9.0.x
将多态查询条件添加到 Criteria 对象,如果此关联是
polymorphic.
此方法似乎是重构后留下的工件,将其重命名为“with_poly态_criterion”,并将其设为私有。 无论如何,此方法不会在其他任何地方被引用,并且不太可能对外部客户端有用。 我们应该将其删除。
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
尝试使用此关联绑定对象是否会引发错误。
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
此关联类型是否为嵌入式?
94 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 94 def ; false; end |
# foreign_key ⇒ 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 |
#路径(文档)→根
获取所提供文档的路径计算器。
186 187 188 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 186 def 路径(文档) Mongoid::原子性::路径::根.new(文档) end |
#多态? ⇒ true | false
此关联是否具有多态性?
154 155 156 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 154 def 多态? @poly态 ||= !!作为 end |
#关系⇒ Association::HasMany::Proxy
获取此关联类型的关联代理类。
109 110 111 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 109 def 关系 代理 end |
# relation_complements ⇒ Array< Mongoid::Association::Relatable >
关联补充列表。
53 54 55 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 53 def lation_complements @relation_complements ||= [ 引用::属于关联 ].冻结 end |
#scope ⇒ Proc | Symbol | nil
获取查询关联时要应用的范围。
193 194 195 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 193 def 范围 @options[:scope] end |
# setup! ⇒ 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
在具有此关联类型的类上设置实例方法。
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
此关联类型是否存储外键?
104 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 104 def store_foreign_key?; false; end |
#类型⇒ string | nil
仅与多态关联相关。
如果该关联是多态的,则为该关联的类型。
125 126 127 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 125 def 类型 @type ||= " #{ as } _type " if 多态? end |
#validation_default ⇒ true
用于验证关联对象的默认。
99 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 99 def validation_default; true; end |