모듈: Mongoid::Persistable
- 확장자:
- ActiveSupport::Concern
- 다음을 포함합니다.
- 생성 가능, 삭제 가능 , 삭제가능, 증가가능, 로직, Maxable, Minable, Multipliable, 팝업 가능 , pullable, pushable, Renameable, Savable, Settable, Unsettable, 업데이트 가능 , Upsertable , Positional
- 포함 항목:
- 컴포저블
- 다음에 정의됨:
- lib/mongoid/persistable.rb,
lib/mongoid/persistable/logical.rb,
lib/mongoid/persistable/maxable.rb,
lib/mongoid/persistable/minable.rb,
lib/mongoid/persistable/savable.rb,
lib/mongoid/persistable/poppable.rb,
lib/mongoid/persistable/pullable.rb,
lib/mongoid/persistable/pushable.rb,
lib/mongoid/persistable/settable.rb,
lib/mongoid/persistable/creatable.rb,
lib/mongoid/persistable/deletable.rb,
lib/mongoid/persistable/renameable.rb,
lib/mongoid/persistable/updatable.rb,
lib/mongoid/persistable/unsettable.rb,
lib/mongoid/persistable/upsertable.rb,
lib/mongoid/persistable/destoryable.rb,
lib/mongoid/persistable/multipliable.rb,
lib/mongoid/persistable/증분 가능.rb
개요
지속성 작업에 대한 일반적인 동작을 포함합니다.
네임스페이스 아래에 정의됨
모듈: 생성 가능, 삭제가능, 삭제 가능 , 증가 가능, 논리적, Maxable,Minable, Multipliable, 팝업 가능, pullable, pushable, Renameable, Savable, Settable, Unsettable ,업데이트 가능 , Upsertable
상수 요약 접기
- LIST_OPERATIONS =
db에서 배열이나 세트를 처리하는 원자 조작입니다.
[ "$addToSet", "$push", "$pull", "$pullAll" ].동결
인스턴스 메서드 요약 접기
-
#원자적으로(join_context: nil) ⇒ true | false
차단 내부에서 발생하는 모든 작업을 원자 단위로(단일 데이터베이스 호출에서) 실행합니다.
-
#fail_due_to_callback!(메서드) ⇒ 객체
콜백 이 실패하면 오류를 발생시킵니다.
-
#fail_due_to_validation! ⇒ 객체
유효성 검사 에 실패하면 오류를 발생시킵니다.
Unsettable에 포함된 메서드
Upsertable에 포함된 메서드
업데이트 가능에 포함된 메서드
#update, #update!, #update_attribute
Settable에 포함된 메서드
Savable에 포함된 메서드
Renameable에 포함된 메서드
푸시 가능에 포함된 메서드
pullable에 포함된 메서드
Positional에 포함된 메서드
Poppable에 포함된 메서드
Multipliable에 포함된 메서드
Minable에 포함된 메서드
Maxable에 포함된 메서드
로직에 포함된 메서드
Incrementable에 포함된 메서드
Destoryable에 포함된 메서드
Deletable에 포함된 메서드
Createable에 포함된 메서드
인스턴스 메서드 세부 정보
#원자적으로(join_context: nil) ⇒ true | false
차단 내부에서 발생하는 모든 작업을 원자 단위로(단일 데이터베이스 호출에서) 실행합니다. 이 메서드는 아래에 설명된 옵션에 따라 동작하는 에 대한 추가 호출을 원자적으로 중첩하는 것을 지원합니다.
join_context 옵션을 지정하면 참일 때 지정된 블록에서 선언한 작업을 동일한 문서에 대한 현재 호출을 원자 단위로 래핑하는 블록과 병합하는(있는 경우) 병합합니다. 이 블록 또는 동일한 컨텍스트를 공유하는 다른 블록이 지속되기 전에 발생하면 해당 컨텍스트의 모든 작업이 지속되지 않으며 메모리에서도 재설정됩니다.
join_context가 false이면 지정된 작업 블록이 다른 컨텍스트와 독립적으로 유지됩니다. 이 블록이 실행되고 변경 사항을 유지할 수 있는 한 다른 컨텍스트에서의 오류는 이 블록에 영향을 주지 않습니다.
join_context의 기본값 은 전역 구성 옵션 join_contexts에 의해 설정하다 되며, 기본값 은 false입니다.
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# 파일 'lib/mongoid/persistable.rb', 94줄 def 원자적으로(join_context: nil) join_context = 몽고이드.join_contexts 만약 join_context.nil? 호출 깊이 = @atomic_depth ||= 0 has_own_context = 호출 깊이.zero? || !join_context @atomic_updates_to_execute_stack ||= [] _mongoid_push_atomic_context 만약 has_own_context 만약 block_given? @atomic_depth += 1 yield(self) @atomic_depth -= 1 end 만약 has_own_context persist_atomic_operations @atomic_context _mongoid_remove_atomic_context_changes end true 구출 StandardError => e _mongoid_reset_atomic_context_changes! 만약 has_own_context 올리다 e 보장 _mongoid_pop_atomic_context 만약 has_own_context 만약 호출 깊이.zero? @atomic_depth = nil @atomic_updates_to_execute_stack = nil end end |