クラス: Mongoid::関連付け::Many

継承:
プロキシ
  • オブジェクト
すべて表示
次による拡張機能。
転送可能
次のことが含まれます。
Enumerable
定義:
build/mongoid- 8.1 /lib/mongoid/asaction/many.rb

Overview

これは、すべての多対 1 および多対多の関連付けプロキシのスーパークラスです。

既知のサブクラスを直接確認

埋め込み::埋め込みMany::Proxy参照::HasMany::Proxy

インスタンス属性の概要

プロキシから継承された属性

#_association, #_base, #_target

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

プロキシから継承されたメソッド

apply_ordering#extend_proxies 、#init 、# klas 、# reset_unloaded#置換可能

マーシャリング可能なに含まれるメソッド

#merger_dump#merger_load

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

#空白= true | false

関連付けは空になっていますか。

例:

関連付けは空ですが、

person.addresses.blank?

次の値を返します。

  • true | false

    関連付けが空または空でない場合。



21
22
23
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/many.rb ', 行21

デフォルト blank?
  !any?
end

# create (Attributes = nil, type = nil, &streams) = nil, &lock) =ドキュメント

参照が多くある関連付けに新しいドキュメントを作成します。 親が永続化されている場合は、これによりドキュメントが保存されます。

例:

新しいドキュメントを作成して保存します。

person.posts.create(:text => "Testing")

パラメーター:

  • 属性 ハッシュ (デフォルトはnil

    作成する属性。

  • タイプ クラス (デフォルトはnil

    作成するドキュメントのタイプ(任意)。

次の値を返します。



35
36
37
38
39
40
41
42
43
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/many.rb ', 行35

デフォルト create(属性 = nil, タイプ = nil, &ブロック)
  場合 属性.is_a?(::配列)
    属性.map { |attrs| create(attrs, タイプ, &ブロック) }
  else
    doc = 構築(属性, タイプ, &ブロック)
    _base.永続化された場合 ? doc.保存 : resume_unsaved(doc)
    doc
  end
end

#作成します。 (attributes = nil, type = nil, &lock) =ドキュメント

参照が多くある関連付けに新しいドキュメントを作成します。 これにより、親が永続化されている場合はドキュメントが保存され、検証に失敗した場合はエラーが発生します。

例:

新しいドキュメントを作成して保存します。

person.posts.create!(:text => "Testing")

パラメーター:

  • 属性 ハッシュ (デフォルトはnil

    作成する属性。

  • タイプ クラス (デフォルトはnil

    作成するドキュメントのタイプ(任意)。

次の値を返します。

次の値が発生します。



58
59
60
61
62
63
64
65
66
67
68
69
70
71
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/many.rb ', 行58

デフォルト 作成します。(属性 = nil, タイプ = nil, &ブロック)
  場合 属性.is_a?(::配列)
    属性.map { |attrs| 作成します。(attrs, タイプ, &ブロック) }
  else
    doc = 構築(属性, タイプ, &ブロック)

    配列(doc). 行う |doc|
      doc.試す(:run_pending_colbacks)
    end

    _base.永続化された場合 ? doc.save! : resume_unsaved(doc)
    doc
  end
end

# find_or_create_by (attrs = {{}、type = nil、 &stream) = ドキュメント =ドキュメント

条件を指定された最初のドキュメントを検索するか、指定された条件で新しいドキュメントを作成します。

@param [ Hash ] attrs The attributes to search or create with.
@param [ Class ] type The optional type of document to create.

例:

検索または作成します。

person.posts.find_or_create_by(:title => "Testing")

次の値を返します。

  • ドキュメント

    既存のドキュメントまたは新しく作成されたドキュメント。



83
84
85
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/many.rb ', 行83

デフォルト find_or_create_by(attrs = {}, タイプ = nil, &ブロック)
  find_or(:create, attrs, タイプ, &ブロック)
end

#find_or_create_by (attrs = {{}、type = nil、 &lock) =ドキュメント

条件を指定された最初のドキュメントを検索するか、指定された条件で新しいドキュメントを作成します。 これにより検証に失敗した場合はエラーが発生します。

例:

検索または作成します。

person.posts.find_or_create_by!(:title => "Testing")

パラメーター:

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

    検索または作成する属性。

  • タイプ クラス (デフォルトはnil

    作成するドキュメントのタイプ(任意)。

次の値を返します。

  • ドキュメント

    既存のドキュメントまたは新しく作成されたドキュメント。

次の値が発生します。



99
100
101
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/many.rb ', 行99

デフォルト find_or_create_by(attrs = {}, タイプ = nil, &ブロック)
  find_or(:createます。, attrs, タイプ, &ブロック)
end

find_or_initialize_by (attrs = {{}、type = nil、 &stream) = ドキュメント =ドキュメント

条件指定された最初のDocumentを検索するか、指定された条件で新しいドキュメントをインスタンス化します

例:

検索または初期化します。

person.posts.find_or_initialize_by(:title => "Test")

パラメーター:

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

    検索または初期化する属性。

  • タイプ クラス (デフォルトはnil

    構築する任意のサブクラス。

次の値を返します。

  • ドキュメント

    既存のドキュメントまたは新しくインスタンス化されたドキュメント。



113
114
115
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/many.rb ', 行113

デフォルト find_or_initialize_by(attrs = {}, タイプ = nil, &ブロック)
  find_or(: build, attrs, タイプ, &ブロック)
end

#nil?false

このプロキシは nil になることはできません。

例:

プロキシは nil ですか。

relation.nil?

次の値を返します。

  • false

    常に false です。



123
124
125
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/many.rb ', 行123

デフォルト nil?
  false
end

response_to? (name, include_private = false) = true | false

メソッド_欠落はオーバーライドされるため、これもオーバーライドする必要があります。

例:

プロキシは メソッドに応答しますか。

relation.respond_to?(:name)

パラメーター:

  • name シンボル

    メソッド名。

  • include_private true | false (デフォルトはfalse

    プライベート メソッドを含めるかどうか。

次の値を返します。

  • true | false

    プロキシが メソッドに応答する場合。



136
137
138
139
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/many.rb ', 行136

デフォルト respond_to?(name, include_private = false)
  [].respond_to?(name, include_private) ||
    klass.respond_to?(name, include_private) || スーパー
end

スコープの# = 基準:基準

これは、関連付けの基準へのパブリック アクセスです。

例:

スコープ指定された関連付けを取得します。

relation.scoped

次の値を返します。

  • 基準

    スコープ指定された基準。



147
148
149
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/many.rb ', 行147

デフォルト scoped
  条件
end

#serializable_hash(options = {}) ⇒ Hash

ActiveModel の JSON および XML シリアライザーで使用される、ドキュメントをシリアル化可能なハッシュとして取得します。 このオーバーライドは、:include オプションと :Exception オプションを渡して、ハッシュ内の関連付けを取得できるようにするためのものです。

例:

シリアル化可能なハッシュを取得します。

relation.serializable_hash

パラメーター:

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

    渡すオプション。

オプション ハッシュ( options ):

  • :例外 Symbol | string | Array< Symbol | string >

    これらのフィールドは含めないでください。

  • :include Symbol | string | Array< Symbol | string >

    含める関連付け。

  • :only Symbol | string | Array< Symbol | string >

    フィールドをこれらのみに制限します。

次の値を返します。

  • ハッシュ

    シリアル化の準備ができているドキュメント。



165
166
167
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/many.rb ', 行165

デフォルト serializable_hash(options = {})
  _ target.map { |ドキュメント| ドキュメント.serializable_hash(options) }
end

スコープ が設定されていない = Criteria

デフォルトのスコープが適用されていない埋め込みドキュメントの基準を取得します。

例:

スコープが設定されていない条件を取得します。

person.addresses.unscoped

次の値を返します。

  • 基準

    スコープが設定されていない基準。



176
177
178
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/many.rb ', 行176

デフォルト スコープが設定されていない
  条件.スコープが設定されていない
end