类: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 =
除常用选项外,还可用于此类关联的选项。
%i[ after_add after_remove 作为 autosave before_add before_remove 依赖 foreign_key 来自一个购物车应用的order文档, primary_key 范围 ].冻结
- 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、#owner_class、#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对象。
此方法似乎是重构后留下的工件,将其重命名为 with_polymorphic_criterion 并将其设为私有。无论如何,此方法不会在其他任何地方被引用,并且不太可能对外部客户端有用。我们应该将其删除。
148 149 150 151 152 153 154 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 148 def add_poly态_criterion(条件, object_class) if 多态? 条件.WHERE(类型 => object_class.名称) else 条件 end end |
#可绑定? (doc) ⇒ true | false
尝试使用此关联绑定对象是否会引发错误。
170 171 172 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 170 def 可绑定?(doc) forced_nil_inverse? || (!!反向 && doc.字段.密钥.包括?(foreign_key)) end |
#标准(base) ⇒ Mongoid::Criteria
用于查询此关联的条件。
122 123 124 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 122 def 条件(基础) query_criteria(基础.发送(primary_key), 基础) end |
# embedded? ⇒ false
此关联类型是否为嵌入式?
94 95 96 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 94 def false end |
# foreign_key ⇒ string
获取反向的外键字段,用于保存关联引用。
83 84 85 86 87 88 89 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 83 def foreign_key @foreign_key ||= if @options[:foreign_key] @options[:foreign_key].to_s else default_foreign_key_field end end |
#nested_builder (attributes, options) ⇒ Association::Nested::Many
嵌套构建器对象。
180 181 182 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 180 def nested_builder(属性, ) 嵌套::很多.new(self, 属性, ) end |
#路径(文档)→根
获取所提供文档的路径计算器。
192 193 194 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 192 def 路径(文档) Mongoid::原子性::路径::根.new(文档) end |
#多态? ⇒ true | false
此关联是否具有多态性?
160 161 162 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 160 def 多态? @poly态 ||= !!作为 end |
#关系⇒ Association::HasMany::Proxy
获取此关联类型的关联代理类。
115 116 117 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 115 def 关系 代理 end |
# relation_complements ⇒ Array< Mongoid::Association::Relatable >
关联补充列表。
51 52 53 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 51 def lation_complements @relation_complements ||= [ 引用::属于关联 ].冻结 end |
#scope ⇒ Proc | Symbol | nil
获取查询关联时要应用的范围。
199 200 201 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 199 def 范围 @options[:scope] end |
# setup! ⇒ self
在关联所属类上设置实例方法、字段等。
58 59 60 61 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 58 def setup! setup_instance_methods! self end |
# setup_instance_methods! ⇒ self
在具有此关联类型的类上设置实例方法。
66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 66 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
此关联类型是否存储外键?
108 109 110 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 108 def store_foreign_key? false end |
#类型⇒ string | nil
仅与多态关联相关。
如果该关联是多态的,则为该关联的类型。
131 132 133 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 131 def 类型 @type ||= " #{ as } _type " if 多态? end |
#validation_default ⇒ true
用于验证关联对象的默认。
101 102 103 |
# File 'lib/mongoid/association/referenced/has_many.rb', line 101 def validation_default true end |