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: プロキシされたドキュメント(1 つまたは複数)_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 属性に保存されている情報を示しています。
方式 | 説明 |
|---|---|
| 多態的な子に対する親の名前。 |
|
|
| 関連付けが自動構築であるかどうかを返します。 |
| 関連付けが自動保存されているかどうかを返します。 |
| 関連付けに親から階層化されたコールバックがあるかどうかを返します。 |
| プロキシされたドキュメントのクラス名。 |
| 関連付けが定期的な関連付けであるかどうかを返します。 |
| 関連付けの依存関係オプション。 |
| 関連付けに依存している削除または破棄するメソッドがある場合は |
| 関連付けが別のドキュメントに埋め込まれているかどうかを返します。 |
| 関連付けに |
| 外部キーフィールドの名前。 |
| 外部キー フィールドのダーティ チェック メソッドの名前。 |
| 外部キー フィールドのセッターの名前。 |
| 外部キーが自動インデックス化されているかどうかを返します。 |
| すべての逆関連付けの名前。 |
| 単一の逆関連付けの名前。 |
| 逆側の関連付けのクラス名。 |
| 逆側の外部キーフィールドの名前。 |
| 逆側の関連付けのクラス。 |
| 逆側の関連付けのメタデータ。 |
| 逆関連付けの明示的に定義された名前。 |
| 逆を設定するために使用されるメソッドの名前。 |
| 逆の多形タイプフィールドの名前。 |
| 多形型フィールドの逆のセッターの名前。 |
| 関連付けを取得するために使用される、属性のハッシュ内のフィールドの名前。 |
| 関連付け内のプロキシされたドキュメントのクラス。 |
| 関連付け名。 |
| ActiveRecord とのAPI互換性のために |
| 関連付けのカスタム並べ替えオプション。 |
| 関連付けが多形であるかどうかを返します。 |
| 関連付けを設定するフィールドの名前。 |
| 埋め込み関連付けを保存する属性の名前。 |
| 関連付けにアクセス オプションがあるかどうかを返します。 |
| 多形型を取得するフィールドの名前。 |
| 多形タイプを設定するフィールドの名前。 |
| 関連付けに関連する検証があるかどうかを返します。 |