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

関連付けメタデータ

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 属性に保存されている情報を示しています。

方式
説明

Association#as

多態的な子に対する親の名前。

Association#as?

as オプションが存在するかどうかを返します。

Association#autobuilding?

関連付けが自動構築であるかどうかを返します。

Association#autosaving?

関連付けが自動保存されているかどうかを返します。

Association#cascading_callbacks?

関連付けに親から階層化されたコールバックがあるかどうかを返します。

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

外部キー フィールドのセッターの名前。

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

多形型フィールドの逆のセッターの名前。

Association#key

関連付けを取得するために使用される、属性のハッシュ内のフィールドの名前。

Association#klass

関連付け内のプロキシされたドキュメントのクラス。

Association#name

関連付け名。

Association#options

ActiveRecord とのAPI互換性のために self を返します。

Association#order

関連付けのカスタム並べ替えオプション。

Association#polymorphic?

関連付けが多形であるかどうかを返します。

Association#setter

関連付けを設定するフィールドの名前。

Association#store_as

埋め込み関連付けを保存する属性の名前。

Association#touchable?

関連付けにアクセス オプションがあるかどうかを返します。

Association#type

多形型を取得するフィールドの名前。

Association#type_setter

多形タイプを設定するフィールドの名前。

Association#validate?

関連付けに関連する検証があるかどうかを返します。

戻る

関連付けの動作をカスタマイズする

項目一覧