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

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

Overview

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

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

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

定数の概要

プロキシから継承された定数

プロキシ::KEEP

インスタンス属性の概要

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

#_association, #_base, #_target

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

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

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

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

#merger_dump#merger_load

コンストラクターの詳細

このクラスは、 Mongoid::関連付け::Proxyからコンストラクターを継承します。

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

#空白= true | false

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

例:

関連付けは空ですが、

person.addresses.blank?

次の値を返します。

  • true | false

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



22
23
24
# ファイル 'lib/mongoid/asaction/many.rb' の検索行22

デフォルト blank?
  !any?
end

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

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

例:

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

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

パラメーター:

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

    作成する属性。

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

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

次の値を返します。



36
37
38
39
40
41
42
43
44
# ファイル 'lib/mongoid/asaction/many.rb' の検索行36

デフォルト 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

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

次の値を返します。

次の値が発生します。



59
60
61
62
63
64
65
66
67
68
69
70
71
72
# ファイル 'lib/mongoid/asaction/many.rb' の検索行59

デフォルト 作成します。(属性 = 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")

次の値を返します。

  • ドキュメント

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



84
85
86
# ファイル 'lib/mongoid/asaction/many.rb' の検索行84

デフォルト 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

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

次の値を返します。

  • ドキュメント

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

次の値が発生します。



100
101
102
# ファイル 'lib/mongoid/asaction/many.rb' の検索行100

デフォルト 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

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

次の値を返します。

  • ドキュメント

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



114
115
116
# ファイル 'lib/mongoid/asaction/many.rb' の検索行114

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

#nil?false

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

例:

プロキシは nil ですか。

relation.nil?

次の値を返します。

  • false

    常に false です。



124
125
126
# ファイル 'lib/mongoid/asaction/many.rb' の検索行124

デフォルト nil?
  false
end

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

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

例:

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

relation.respond_to?(:name)

パラメーター:

  • name シンボル

    メソッド名。

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

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

次の値を返します。

  • true | false

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



137
138
139
140
# ファイル 'lib/mongoid/asaction/many.rb' の検索行137

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

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

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

例:

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

relation.scoped

次の値を返します。

  • 基準

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



148
149
150
# ファイル 'lib/mongoid/asaction/many.rb' の検索行148

デフォルト 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 >

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

次の値を返します。

  • ハッシュ

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



166
167
168
# ファイル 'lib/mongoid/asaction/many.rb' の検索行166

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

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

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

例:

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

person.addresses.unscoped

次の値を返します。

  • 基準

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



177
178
179
# ファイル 'lib/mongoid/asaction/many.rb' の検索行177

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