模块:Mongoid::Association

扩展方式:
ActiveSupport::Concern
包括:
访问器构建器依赖项嵌入式::循环引用::自动保存引用::计数器缓存引用::同步反射
包含在:
可组合
定义于:



























































lib/mongoid/association.rb 、 lib/mongoid/association/one.rb、 lib/mongoid/association/many.rb、 lib/mongoid/association/eager.rb、 lib/mongoid/association/proxy.rb、 lib/ mongoid/association/macros.rb、 lib/mongoid/association/nested.rb、 lib/mongoid/association/options.rb、 lib/mongoid/association/bindable.rb、 lib/mongoid/association/ 构建者.rb、 lib/ mongoid/association/accessors.rb、 lib/mongoid/association/depending.rb、 lib/mongoid/association/relatable.rb、 lib/mongoid/association/nested/one.rb、 lib/mongoid/association/marshalable.rb、 lib/mongoid/association/nested/many.rb、lib/mongoid/association/reflections.rb、lib/mongoid/association/constrainable.rb、lib/mongoid/association/eager_loadable.rb、lib/mongoid/association/embedded/ ager.rb、lib/mongoid/association/embedded/linear.rb、lib/mongoid/association/embedded/batchable.rb、lib/mongoid/association/referenced/has_one.rb、lib/mongoid/association/embedded/embeds_one。 rb, lib/mongoid/association/referenced/has_many.rb, lib/mongoid/associati on/referenced/syncable.rb, lib/mongoid/association/embedded/embedded_in.rb, lib/mongoid/association/embedded/embeds_many.rb, lib/mongoid/association/referenced/auto_save.rb, lib/mongoid/association/ referenced/belongs_to.rb, lib/mongoid/association/nested/nested_buildable.rb, lib/mongoid/association/referenced/counter_cache.rb, lib/mongoid/association/referenced/has_one/eager.rb, lib/mongoid/association/ referenced/has_one/proxy.rb、 lib/mongoid/association/embedded/embeds_one/proxy.rb、 lib/mongoid/association/referenced/has_many/eager.rb、 lib/mongoid/association/referenced/has_many/proxy.rb、 lib/mongoid/association/embedded/embedded_in/proxy.rb, lib/mongoid/association/embedded/embeds_many/proxy.rb, lib/mongoid/association/referenced/has_one/bounding.rb, lib/mongoid/association/embedded/ embeds_one/ Binding.rb, lib/mongoid/association/referenced/belongs_to/eager.rb, lib/mongoid/association/referenced/belongs_to/proxy.rb, lib/mongoid/association/referenced/has_many/bounding.rb, lib/ mongoid/as lib/mongoid/association/embedded/embeds_many/bounding.rb、lib/mongoid/association/referenced/has_one/buildable.rb、lib/mongoid/association/embedded/embeds_one/buildable。 rb, lib/mongoid/association/referenced/belongs_to/bounding.rb, lib/mongoid/association/referenced/has_many/buildable.rb, lib/mongoid/association/embedded/embedded_in/buildable.rb, lib/mongoid/association/ embedded/embeds_many/buildable.rb, lib/mongoid/association/referenced/has_many/enumerable.rb, lib/mongoid/association/referenced/belongs_to/buildable.rb, lib/mongoid/association/referenced/has_and_belongs_to_many.rb, lib/ mongoid/association/referenced/with_poly态_criteria.rb、lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb、lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb、lib/mongoid/association/referenced/has_and_belongs_to_many/绑定。 rb, lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb

Overview

Mixin 模块,用于向 Mongoid文档添加关联行为。 添加 #embedded? 等方法 表示文档的相对关联状态。

在命名空间下定义

模块: 访问 器、 Bindable Builders Constrainable Dependency、EagerLoadable Embedded Marshalable Nested Options Referenced Reflections Relatable Classes: Eager Many One Proxy

常量摘要折叠

MACRO_MAPPING =

将宏映射到相应的关联类。

返回:

  • (哈希)

    从宏到关联类的映射。

{
    embeds_one: 关联::Embedded::嵌入一个,
    embeds_many: 关联::Embedded::嵌入许多,
    embedded_in: 关联::Embedded::EmbeddedIn,
    has_one: 关联::引用::有一个,
    has_many: 关联::引用::有很多,
    has_and_belongs_to_many: 关联::引用::拥有并且属于许多,
    belongs_to: 关联::引用::属于关联,
}.冻结

常量包含在取决于

取决于::战略

实例属性摘要折叠

实例方法摘要折叠

反射中包含的方法

#reflect_on_all_association#reflect_on_association

中包含的方法

#associations

包含的方法取决于

#apply_destroy_dependencies!define_dependency!验证!

访问器中包含的方法

#__build__#create_relation#reset_relation_criteria#set_relation

Referenced::Syncable中包含的方法

#_syncable?#_synced#_synced?#remove_inverse_keys#update_inverse_keys

Referenced::CounterCache中包含的方法

define_callbacks! , #reset_counters

Referenced::AutoSave中包含的方法

#__autosaving__, #autosaved?, #changed_for_autosave?, define_autosave!

实例属性详细信息

# _association对象

返回属性 _association 的值。



51
52
53
# File 'lib/mongoid/association.rb', line 51

def _association
  @_association
end

实例方法详细信息

#association_name符号

获取此文档的关联名称。 如果未定义关联

an error will be raised.

例子:

获取关联名称。

document.association_name

返回:

  • (符号)

    关联名称。

引发:



98
99
100
101
# File 'lib/mongoid/association.rb', line 98

def Association_name
  提高 Errors::NoMetadata.new(self.class.名称) 除非 _association
  _association.名称
end

# embedded?true | false

确定文档本身是否通过适当渠道嵌入到另一个文档中。 (如果有父文档。)

例子:

文档是否为嵌入式文档?

address.embedded?

返回:

  • ( true | false )

    如果文档有父文档,则为 true。



65
66
67
# File 'lib/mongoid/association.rb', line 65

def 嵌入式?
  @embedded ||= (循环 ? _parent.现在? : self.class.嵌入式?)
end

# embedded_many?true | false

确定文档是否是 embeds_many 关联的一部分。

例子:

嵌入的文档是否多个?

address.embedded_many?

返回:

  • ( true | false )

    如果在嵌入中,则为 True。



75
76
77
# File 'lib/mongoid/association.rb', line 75

def embedded_many?
  _association && _association.is_a?(关联::Embedded::嵌入许多)
end

# embedded_one?true | false

确定文档是否是 embeds_one 关联的一部分。

例子:

该文档是否为嵌入式文档?

address.embedded_one?

返回:

  • ( true | false )

    如果在嵌入中,则为 True。



85
86
87
# File 'lib/mongoid/association.rb', line 85

def embedded_one?
  _association && _association.is_a?(关联::Embedded::嵌入一个)
end

# referenced_many?true | false

确定文档是否是references_many 关联的一部分。

例子:

引用的文档多吗?

post.referenced_many?

返回:

  • ( true | false )

    如果在引用很多中,则为 True。



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

def referenced_many?
  _association && _association.is_a?(关联::引用::有很多)
end

# referenced_one?true | false

确定文档是否是references_one关联的一部分。

例子:

文档是否为参考文档?

address.referenced_one?

返回:

  • ( true | false )

    如果在引用中,则为 True。



119
120
121
# File 'lib/mongoid/association.rb', line 119

def referenced_one?
  _association && _association.is_a?(关联::引用::有一个)
end

# reload_relations哈希

遍历已加载关联并重新加载的便捷方法。

例子:

重新加载关联。

document.reload_relations

返回:

  • (哈希)

    关联元数据。



130
131
132
133
134
135
136
137
138
# File 'lib/mongoid/association.rb', line 130

def reload_relations
  关系.each_pair do |名称, meta|
    if instance_variable_defined?(" @_ #{ name } ")
      if _parent.nil? || instance_variable_get(" @_ #{ name } ") != _parent
        remove_instance_variable(" @_ #{ name } ")
      end
    end
  end
end