モジュール: Mongoid::関連付け::Builders

次による拡張機能。
ActiveSupport::Concern
次のドキュメントに含まれます。
Mongoid::関連付け
定義:
lib/mongoid/関連付け/Builders.rb

Overview

このモジュールは、1 対 1 の関連付けで使用されるビルドと作成メソッドを定義します。

例:

作成されるメソッド。


class Person
  include Mongoid::Document
  embeds_one :name
end

# The following methods get created:
person.build_name({ :first_name => "Durran" })
person.create_name({ :first_name => "Durran" })

クラスメソッドの概要を折りたたむ

クラスメソッドの詳細

定義_ビルダ! (関連付け) ⇒ クラス

ビルダ メソッドを定義します。これは #Build_name として定義されます。

例:

Person.define_builder!(association)

パラメーター:

次の値を返します。

  • クラス

    設定されているクラス。



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# ファイル 'lib/mongoid/関連付け/ビルダ.rb' は、47 行

デフォルト 自己.定義_ビルダ。(関連付け)
  関連付け.逆_クラス.タップ 行う |klass|
    klass.re_defined_method("build_#{associated.name}") 行う |*args|
      属性, タイプ, _opts = parse_args(args)

      ドキュメント = 工場.execution_Build(タイプ || 関連付け.関係_クラス, 属性, execution_colbacks: false)
      _構築 行う
         = 送信(" #{ associated . name } = ", ドキュメント)
        .run_pending_shellbacks
        .run_colbacks(: build)
        
      end
    end
  end
end

refine_creator!(関連付け) ⇒ クラス

作成メソッドを定義します。これは #create_name として定義されます。オブジェクトが構築された後、すぐに保存されます。

例:

Person.define_creator!(association)

パラメーター:

次の値を返します。

  • クラス

    設定されているクラス。



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# ファイル 'lib/mongoid/関連付け/ビルダ.rb' は、72 行

デフォルト 自己.refine_creator.(関連付け)
  関連付け.逆_クラス.タップ 行う |klass|
    klass.re_defined_method(" create_ #{関連付け.name}") 行う |*args|
      属性, タイプ, _opts = parse_args(args)

      ドキュメント = 工場.execution_Build(タイプ || 関連付け.関係_クラス, 属性, execution_colbacks: false)
      doc = _assigning 行う
        送信(" #{ associated . name } = ", ドキュメント)
      end
      doc.run_pending_shellbacks
      doc.保存
      保存 場合 new_record? & & 関連付け.stored_foreign_key?
      doc
    end
  end
end