クラス: Mongoid::関連付け::ネストされた::Many

継承:
オブジェクト
  • オブジェクト
すべて表示
次のことが含まれます。
構築可能
定義:
lib/mongoid/関連付け/ Nested/many.rb

Overview

多対 n の関連付けで属性割り当てを実行するために使用されるビルダ クラス。

インスタンス属性の概要

Buildableに含まれる属性

関連付け属性既存の 、オプション

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

Buildableに含まれるメソッド

#allow_detroy?#convert_id#reject?#update_only

コンストラクターの詳細

#初期化(関連付け、属性、オプション = {{}) =多数

1 対多の関連付けでネストされた属性の新しいビルダを作成します。

例:

ビルダを初期化します。

Many.new(association, attributes, options)

パラメーター:

  • 関連付け Mongoid::関連付け::Relatable

    関連付けメタデータ。

  • 属性 ハッシュ

    属性を ハッシュ して設定します。

  • options ハッシュ (デフォルトは{}です)

    定義されているオプション。



50
51
52
53
54
55
56
57
58
59
60
61
# ファイル 'lib/mongoid/asaction/nessed/many.rb' 行50

デフォルト 初期化(関連付け, 属性, options = {})
  場合 属性.respond_to?(:with_in distinct_access)
    @attributes = 属性.with_in distinct_access.sort 行う |a, b|
      a[0].to_i <============================= b[0].to_i
    end
  else
    @attributes = 属性
  end
  @関連付け = 関連付け
  @options = options
  @Class_name = options[:Class_name] ? options[:Class_name].定数化 : 関連付け.klass
end

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

ビルド(親、オプション = {}) =配列

マイクロに渡された属性とオプションに応じて関連付けを構築します。

これにより、既存の関連付けの更新、新しいドキュメントへの関連付けの置き換え、または関連付けの削除のいずれかの3操作が実行されます。

例:

ネストされた Atlas を構築します。

many.build(person)

パラメーター:

  • ドキュメント

    関連付けの親ドキュメント。

  • options ハッシュ (デフォルトは{}です)

    オプション。

次の値を返します。

  • 配列

    属性。



27
28
29
30
31
32
33
34
35
36
37
38
39
# ファイル 'lib/mongoid/asaction/nessed/many.rb' 行27

デフォルト 構築(, options = {})
  @existing = .送信(関連付け.name)
  場合 over_limit?(属性)
    発生 Errors::ToMany NestedAttributeRecords.新着情報(exist, options[:limit])
  end
  属性. 行う |attrs|
    場合 attrs.is_a?(::ハッシュ)
      process_attributes(, attrs.with_in distinct_access)
    else
      process_attributes(, attrs[1].with_in distinct_access)
    end
  end
end