モジュール: Mongoid::criteria::Scopable

次のドキュメントに含まれます。
Mongoid::Criteria
定義:
lib/mongoid/criteria/scopable.rb

Overview

Mongoid::Criteria に含まれる混合モジュールで、デフォルトのクエリ スコープと名前付きスコープに関連する機能を追加します。

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

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

#apply_default_scopeCriteria

デフォルトのスコープを基準に適用します。

例:

デフォルトのスコープを適用します。

criteria.apply_default_scope

次の値を返します。



18
19
20
21
22
23
# ファイル 'lib/mongoid/criteria/scopable.rb' 行18

デフォルト apply_default_scope
  klass.without_default_scope 行う
    mergeします。(klass.default_scoping.を呼び出す)
  end
  自己.scope_options = true, false
end

# apply_scope (スコープ) ~基準

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

現在の基準にスコープを適用します。

このメソッドはレシーバーを変更しませんが、 引数に応じて新しいオブジェクトまたはレシーバーが返される場合があります。 scope引数が nil の場合、レシーバーは変更されずに返され、それ以外の場合は新しい基準オブジェクトが返されます。

パラメーター:

  • scope (Proc | Symbol | Criteria | nil)

    適用されるスコープ。

次の値を返します。

  • 基準

    スコープが適用される基準。



37
38
39
40
41
42
43
44
45
46
47
48
# ファイル 'lib/mongoid/criteria/scopable.rb' 行37

デフォルト apply_scope(scope)
  ケース scope
  次の場合: Proc
    instance_exec(&scope)
  次の場合: シンボル
    送信(scope)
  次の場合: 条件
    merge(scope)
  else
    自己
  end
end

#remove_scoping (その他) =基準

別の基準が指定されている場合は、この基準から他の基準のスコープを削除します。

例:

スコープを削除します。

criteria.remove_scoping(other)

パラメーター:

  • その他 基準

    その他の基準。

次の値を返します。

  • 基準

    スコープが削除された基準。



59
60
61
62
63
64
65
66
67
# ファイル 'lib/mongoid/criteria/scopable.rb' 行59

デフォルト delete_scoping(その他)
  場合 その他
    拒否_一致(その他, : セレクター, :options)
    その他.includes. 行う |meta|
      includes.delete_one(meta)
    end
  end
  自己
end

スコープ付き(オプション = nil)=nil) =============================================================================

スコープが設定されていないブロック内にない限り、基準を強制的にスコープ設定します。

例:

基準を強制的にスコープ設定します。

criteria.scoped(skip: 10)

パラメーター:

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

    追加のクエリ オプション。

次の値を返します。

  • 基準

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



77
78
79
80
81
82
83
84
# ファイル 'lib/mongoid/criteria/scopable.rb' 行77

デフォルト scoped(options = nil)
  crit = 複製
  crit.options.mergeします。(options || {})
  場合 klass.default_scopable? & & !スコープ付き
    crit.apply_default_scope
  end
  crit
end

スコープ付き= true | false

基準にはデフォルトのスコープが適用されましたか。

例:

デフォルトのスコープは適用されていますか?

criteria.scoped?

次の値を返します。

  • true | false

    デフォルトのスコープが適用される場合。



92
93
94
# ファイル 'lib/mongoid/criteria/scopable.rb' 行92

デフォルト スコープ付き
  !!(定義済み?(@scoped) ? @scoped : nil)
end

# scopeing_options =配列

基準のスコープ オプションを ペア(スコープ付き、スコープなし)として取得します。

例:

スコープ オプションを取得します。

criteria.scoping_options

次の値を返します。

  • 配列

    スコープ付き、スコープなし。



127
128
129
# ファイル 'lib/mongoid/criteria/scopable.rb' 行127

デフォルト scope_options
  [ (定義済み?(@scoped) ? @scoped : nil), (定義済み?(@unscoped) ? @unscoped : nil) ]
end

# sスコープ_オプション= (オプション) = (オプション) =配列

基準のスコープ オプションをペア(スコープ付き、スコープなし)として設定します。

例:

スコープ オプションを設定します。

criteria.scoping_options = true, false

パラメーター:

  • options 配列

    スコープ付き、スコープなし。

次の値を返します。

  • 配列

    新しいスコープ オプション。



139
140
141
# ファイル 'lib/mongoid/criteria/scopable.rb' 行139

デフォルト scope_options=(options)
  @scoped, @unscoped = options
end

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

基準からすべてのスコープをクリアします。

例:

基準からすべてのスコープをクリアします。

criteria.unscoped

次の値を返します。

  • 基準

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



102
103
104
105
106
107
108
109
# ファイル 'lib/mongoid/criteria/scopable.rb' 行102

デフォルト スコープが設定されていない
  crit = 複製
  ただし、 スコープが設定されていないか
    crit.scope_options = false, true
    crit.セレクター.クリア; crit.options.クリア
  end
  crit
end

スコープが設定されていない場合 = true | false

基準はスコープが設定されていませんか。

例:

基準はスコープが設定されていませんか。

criteria.unscoped?

次の値を返します。

  • true | false

    条件が強制的にスコープを解除する場合。



117
118
119
# ファイル 'lib/mongoid/criteria/scopable.rb' 行117

デフォルト スコープが設定されていないか
  !!(定義済み?(@unscoped) ? @unscoped : nil)
end

# with_default_scope ] =基準

デフォルトのスコープを適用できる場合は、デフォルトのスコープが適用された基準を取得します。 当てはまらないケース。スコープが設定されていないブロック内にある場合、基準がすでに強制的にスコープ外されている場合、またはデフォルトのスコープがすでに適用されている場合。

例:

デフォルトのスコープで基準を取得します。

criteria.with_default_scope

次の値を返します。



152
153
154
155
156
157
158
# ファイル 'lib/mongoid/criteria/scopable.rb' 行152

デフォルト with_default_scope
  crit = 複製
  場合 klass.default_scopable? & & !スコープが設定されていないか & & !スコープ付き
    crit.apply_default_scope
  end
  crit
end