クラス: Mongoid::関連付け::参照::HasAndBelongsToMany::Binding

継承:
オブジェクト
  • オブジェクト
すべて表示
次のことが含まれます。
バインディング可能
定義:
lib/mongoid/関連付け/referenced/has_and_belongs_to_many/bining.rb

Overview

すべての has_and_belongs_to_many 関連付けのバインディング クラス。

インスタンス属性の概要

バインディング可能なに含まれる属性

#_association, #_base, #_target

インスタンス メソッドの概要を折りたたむ

バインド可能な に含まれるメソッド

バインディング初期化

インスタンス メソッドの詳細

# bind_one (doc) = Object

単一のドキュメントを逆の関連付けでバインドします。 プロキシに追加するときに特に使用されます。

例:

1 つのドキュメントをバインドします。

person.preferences.bind_one(preference)

パラメーター:



20
21
22
23
24
25
26
27
28
29
30
31
32
33
# ファイル 'lib/mongoid/関連付け/referenced/has_and_belongs_to_many/bining.rb' の場合は 行20

デフォルト bind_one(doc)
  バインディング 行う
    逆_キー = try_method(doc, _関連付け.inverse_foreign_key) ただし、 doc.frozen?
    場合 逆_キー
      Record_id = inverse_record_id(doc)
      ただし、 逆_キー.include?(Record_id)
        try_method(doc, _関連付け.inverse_foreign_key_setter, 逆_キー.プッシュ(Record_id))
      end
      doc.delete_relation_criteria(_関連付け.)
    end
    _base._synced[_関連付け.foreign_key] = true
    doc._synced[_関連付け.inverse_foreign_key] = true
  end
end

# explain_inverse_asされました関連付け

指定されたドキュメント内の逆の関連付けを検索します。

パラメーター:

  • doc Mongoid::Document

    逆関連付けを決定するドキュメント。

次の値を返します。



77
78
79
# ファイル 'lib/mongoid/関連付け/referenced/has_and_belongs_to_many/bining.rb' の場合は 行77

デフォルト explain_inverse_as associated(doc)
  doc.関係[_base.クラス.name.モジュール化.アンダースコア.複数形]
end

#inverse_record_id(doc) ⇒ BSON::ObjectId

inverse_keys が参照する逆 ID を見つける

パラメーター:

次の値を返します。

  • BSON::ObjectId

    逆 ID。



58
59
60
61
62
63
64
65
66
67
68
69
# ファイル 'lib/mongoid/関連付け/referenced/has_and_belongs_to_many/bining.rb' の場合は 行58

デフォルト inverse_record_id(doc)
  場合 pk = _関連付け.options[:inverse_primary_key]
    _base.送信(pk)
  else
    逆_関連付け = explain_inverse_as associated(doc)
    場合 逆_関連付け
      _base.__send__(逆_関連付け.プライマリ_キー)
    else
      _base._id
    end
  end
end

#unbind_one(doc) ⇒ Object

単一ドキュメントのバインドを解除します。

例:

ドキュメントのバインドを解除します。

person.preferences.unbind_one(document)


39
40
41
42
43
44
45
46
47
48
49
50
# ファイル 'lib/mongoid/関連付け/referenced/has_and_belongs_to_many/bining.rb' の場合は 行39

デフォルト unbind_one(doc)
  バインディング 行う
    _base.送信(_関連付け.foreign_key).delete_one(Record_id(doc))
    逆_キー = try_method(doc, _関連付け.inverse_foreign_key) ただし、 doc.frozen?
    場合 逆_キー
      逆_キー.delete_one(inverse_record_id(doc))
      doc.delete_relation_criteria(_関連付け.)
    end
    _base._synced[_関連付け.foreign_key] = true
    doc._synced[_関連付け.inverse_foreign_key] = true
  end
end