Overview
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 属性中的信息:
方法 | 说明 |
|---|---|
| 多态子项的父项名称。 |
| 返回 |
| 返回关联是否为自动构建。 |
| 返回关联是否自动保存。 |
| 返回关联是否具有从父级向下级联的 callback。 |
| 被代理文档的类名。 |
| 返回关联是否为循环关联。 |
| 关联的依赖选项。 |
| 如果关联具有依赖的删除或销毁方法,则返回 |
| 返回是否将该关联嵌入到另一个文档中。 |
| 返回该关联是否定义了 |
| 外键字段的名称。 |
| 外键字段的脏检查方法的名称。 |
| 外键字段 setter 的名称。 |
| 返回该外键是否自动索引。 |
| 所有反向关联的名称。 |
| 单个反向关联的名称。 |
| 反向关联的类名。 |
| 反向外键字段的名称。 |
| 反向关联的类。 |
| 反向关联的元数据。 |
| 反向关联的显式定义名称。 |
| 用于设立反向的方法的名称。 |
| 反向的多态类型字段的名称。 |
| 多态类型字段反向 setter 的名称。 |
| 属性哈希中用于获取关联的字段的名称。 |
| 关联中代理文档的类。 |
| 关联名称。 |
| 返回 |
| 关联上的自定义排序选项。 |
| 返回关联是否为多态。 |
| 要设立关联的字段的名称。 |
| 要在其中存储嵌入式关联的属性的名称。 |
| 返回关联是否具有触摸选项。 |
| 要获取多态类型的字段的名称。 |
| 要设立多态类型的字段的名称。 |
| 返回该关联是否有相关的验证。 |