모듈: Mongoid::Criteria::Scopable
- 포함 항목:
- Mongoid::Criteria
- 다음에 정의됨:
- lib/mongoid/criteria/scopable.rb
개요
Mongoid::Criteria에 포함된 Mixin 모듈은 기본값 쿼리 범위 및 명명된 범위와 관련된 기능을 추가합니다.
인스턴스 메서드 요약 접기
-
#apply_default_scope ⇒ 기준
기준에 기본 범위를 적용합니다.
-
#apply_scope(scope) ⇒ 기준
비공개
현재 기준에 범위를 적용합니다.
-
#remove_scoping(기타) ⇒ 기준
다른 기준이 주어지면 이 기준에서 다른 기준의 범위를 제거 .
-
#범위 지정(옵션 = nil) ⇒ 기준
범위가 지정되지 않은 차단 내에 있지 않은 경우 기준의 범위를 강제로 지정합니다.
-
#범위? ⇒ true | false
기준에 기본 범위가 적용되었나요?
-
#scopeing_options ⇒ 배열
기준 범위 지정 옵션을 쌍(범위 지정, 범위 지정 없음)으로 가져옵니다.
-
#scopeing_options=(options) ⇒ 배열
기준 범위 지정 옵션을 쌍(범위 지정, 범위 지정 없음)으로 설정합니다.
-
#unscoped ⇒ 기준
기준에서 모든 범위를 지웁니다.
-
#unscoped? ⇒ true | false
기준의 범위가 지정되지 않았나요?
-
#with_default_scope ⇒ 기준
기본 범위를 적용할 수 있는 경우 기본 범위가 적용된 기준을 가져옵니다.
인스턴스 메서드 세부 정보
#apply_default_scope ⇒ 기준
기준에 기본 범위를 적용합니다.
15 16 17 18 19 20 |
# 파일 'lib/mongoid/criteria/scopable.rb', 줄 15 def apply_default_scope class.without_default_scope do 병합!(class.default_scoping.전화하기.) end self. = true, 거짓 end |
#apply_scope(scope) ⇒ 기준
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
현재 기준에 범위를 적용합니다.
이 메서드는 수신자를 수정하지 않지만 인수에 따라 새 객체 또는 수신자를 반환할 수 있습니다. scope 인수가 nil이면 수정 없이 수신자를 반환하고, 그렇지 않으면 새 기준 객체를 반환합니다.
34 35 36 37 38 39 40 41 42 43 44 45 |
# 파일 'lib/mongoid/criteria/scopable.rb', 줄 34 def apply_scope(범위) case 범위 when Proc instance_exec(&범위) when 기호 send(범위) when 기준 merge(범위) other self end end |
#remove_scoping(기타) ⇒ 기준
다른 기준이 주어지면 이 기준에서 다른 기준의 범위를 제거 .
56 57 58 59 60 61 62 63 64 |
# 파일 'lib/mongoid/criteria/scopable.rb', 줄 56 def remove_scoping(기타) 만약 기타 거부_매칭(기타, :selector, :options) 기타.포함.각 do || 포함.delete_one() end end self end |
#범위 지정(옵션 = nil) ⇒ 기준
범위가 지정되지 않은 차단 내에 있지 않은 경우 기준의 범위를 강제로 지정합니다.
74 75 76 77 78 79 |
# 파일 'lib/mongoid/criteria/scopable.rb', 줄 74 def 범위 지정( = nil) crit = 복제 crit..병합!( || {}) crit.apply_default_scope 만약 class.default_scopable? && !범위 지정? crit end |
#범위? ⇒ true | false
기준에 기본 범위가 적용되었나요?
87 88 89 |
# 파일 'lib/mongoid/criteria/scopable.rb', 줄 87 def 범위 지정? !!(정의됨?(@scoped) ? @scoped : nil) end |
#scopeing_options ⇒ 배열
기준 범위 지정 옵션을 쌍(범위 지정, 범위 지정 없음)으로 가져옵니다.
123 124 125 |
# 파일 'lib/mongoid/criteria/scopable.rb', 줄 123 def [ (정의됨?(@scoped) ? @scoped : nil), (정의됨?(@unscoped) ? @unscoped : nil) ] end |
#scopeing_options=(options) ⇒ 배열
기준 범위 지정 옵션을 쌍(범위 지정, 범위 지정 없음)으로 설정합니다.
135 136 137 |
# 파일 'lib/mongoid/criteria/scopable.rb', 줄 135 def () @scoped, @unscoped = end |
#unscoped ⇒ 기준
기준에서 모든 범위를 지웁니다.
97 98 99 100 101 102 103 104 105 |
# 파일 'lib/mongoid/criteria/scopable.rb', 줄 97 def 범위가 지정되지 않은 crit = 복제 하지 않는 한 범위가 지정되지 않았나요? crit. = 거짓, true crit.선택기.지우기 crit..지우기 end crit end |
#unscoped? ⇒ true | false
기준의 범위가 지정되지 않았나요?
113 114 115 |
# 파일 'lib/mongoid/criteria/scopable.rb', 줄 113 def 범위가 지정되지 않았나요? !!(정의됨?(@unscoped) ? @unscoped : nil) end |
#with_default_scope ⇒ 기준
기본 범위를 적용할 수 있는 경우 기본 범위가 적용된 기준을 가져옵니다. 적용할 수 없는 경우: 범위가 지정되지 않은 차단에 있거나 기준이 이미 범위가 지정되지 않은 경우 또는 기본 범위가 이미 적용된 경우.
148 149 150 151 152 |
# 파일 'lib/mongoid/criteria/scopable.rb', 줄 148 def with_default_scope crit = 복제 crit.apply_default_scope 만약 class.default_scopable? && !범위가 지정되지 않았나요? && !범위 지정? crit end |