Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs 菜单
Docs 主页
/ /

关联元数据

Mongoid 中的关联允许您在模型之间创建关系。当您定义关联时,Mongoid 会存储有关该关联的元数据。您可以通过对模型类或文档调用 reflect_on_association 方法,或直接访问特定文档的元数据访问权限元数据。以下示例展示了如何使用 reflect_on_association 方法并通过直接访问权限访问权限元数据:

# Get the metadata for a named association from the class or document
Model.reflect_on_association(:<association_name>)
# Directly access metadata on a document
model.associations[:<association_name>]

注意

将上示例中的 <association_name> 替换为关联名称。

所有关联都包含存储相关文档信息的属性。 关联包含以下属性:

  • _target:被代理的文档或多个文档

  • _base:定义关联的文档

  • _association:有关关联的信息

以下示例将访问上述每个属性:

class Band
include Mongoid::Document
embeds_many :songs
end
Band.songs = [ song ]
Band.songs._target # returns [ song ]
Band.songs._base # returns band
Band.songs._association # returns the association metadata

下表显示了存储在 _association 属性中的信息:

方法
说明

Association#as

多态子项的父项名称。

Association#as?

返回 as 选项是否存在。

Association#autobuilding?

返回关联是否为自动构建。

Association#autosaving?

返回关联是否自动保存。

Association#cascading_callbacks?

返回关联是否具有从父级向下级联的 callback。

Association#class_name

被代理文档的类名。

Association#cyclic?

返回关联是否为循环关联。

Association#dependent

关联的依赖选项。

Association#destructive?

如果关联具有依赖的删除或销毁方法,则返回 true

Association#embedded?

返回是否将该关联嵌入到另一个文档中。

Association#forced_nil_inverse?

返回该关联是否定义了 nil 反向。

Association#foreign_key

外键字段的名称。

Association#foreign_key_check

外键字段的脏检查方法的名称。

Association#foreign_key_setter

外键字段 setter 的名称。

Association#indexed?

返回该外键是否自动索引。

Association#inverses

所有反向关联的名称。

Association#inverse

单个反向关联的名称。

Association#inverse_class_name

反向关联的类名。

Association#inverse_foreign_key

反向外键字段的名称。

Association#inverse_klass

反向关联的类。

Association#inverse_association

反向关联的元数据。

Association#inverse_of

反向关联的显式定义名称。

Association#inverse_setter

用于设立反向的方法的名称。

Association#inverse_type

反向的多态类型字段的名称。

Association#inverse_type_setter

多态类型字段反向 setter 的名称。

Association#key

属性哈希中用于获取关联的字段的名称。

Association#klass

关联中代理文档的类。

Association#name

关联名称。

Association#options

返回 self,以实现API与 ActiveRecord 的兼容性。

Association#order

关联上的自定义排序选项。

Association#polymorphic?

返回关联是否为多态。

Association#setter

要设立关联的字段的名称。

Association#store_as

要在其中存储嵌入式关联的属性的名称。

Association#touchable?

返回关联是否具有触摸选项。

Association#type

要获取多态类型的字段的名称。

Association#type_setter

要设立多态类型的字段的名称。

Association#validate?

返回该关联是否有相关的验证。

后退

自定义关联行为

在此页面上