모듈: Mongoid::Association::Referenced::Auto Save
- 확장자:
- ActiveSupport::Concern
- 포함 항목:
- Mongoid::Association
- 다음에 정의됨:
- lib/mongoid/association/referenced/auto_save.rb
개요
Mongoid::Document에 포함된 Mixin 모듈은 주제 문서 를 저장할 때 참조된 연관 관계에서 반대편 문서를 자동으로 저장하는 기능 을 추가합니다.
클래스 메서드 요약 접기
-
.정의_자동 저장!(association) ⇒ 클래스
연결된 객체에 대한 연결의 소유 클래스에서 자동 저장 메서드를 정의합니다.
인스턴스 메서드 요약 접기
-
#__autosaving__ ⇒ 객체
관련 자동 저장을 시작합니다.
-
#자동 저장? ⇒ true | false
관련 자동 저장에서 무한 루프를 방지하는 데 사용됩니다.
-
#change_for_autosave?(doc) ⇒ 부울
자동 저장에 대한 변경 사항이 있는지 확인합니다.
클래스 메서드 세부 정보
.정의_자동 저장!(association) ⇒ 클래스
연결된 객체에 대한 연결의 소유 클래스에서 자동 저장 메서드를 정의합니다.
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# 파일 'lib/mongoid/association/referenced/auto_save.rb', 줄 53 def self.정의_자동 저장!(연관 관계) 연관 관계.inverse_class.탭 do |class| save_method = :"autosave_documents_for_#{연관 관계.이름}" class.send(:define_method, save_method) do 만약 before_callback_halted? self.before_callback_halted = 거짓 other __자동 저장__ do 만약 assoc_value = ivar(연관 관계.이름) 배열(assoc_value).각 do |doc| PC = doc.persistence_context? ? doc.persistence_context : persistence_context.for_child(doc) doc.와(PC) do |d| d.저장 end end end end end end class.after_persist_parent save_method, 그렇지 않은 경우: :autosaved? end end |
인스턴스 메서드 세부 정보
#__autosaving__ ⇒ Object
관련 자동 저장을 시작합니다.
28 29 30 31 32 33 |
# 파일 'lib/mongoid/association/referenced/auto_save.rb', 줄 28 def __자동 저장__ 스레드.begin_autosave(self) yield 보장 스레드.exit_autosave(self) end |
#자동 저장? ⇒ true | false
관련 자동 저장에서 무한 루프를 방지하는 데 사용됩니다.
20 21 22 |
# 파일 'lib/mongoid/association/referenced/auto_save.rb', 줄 20 def 자동 저장? 스레드.자동 저장?(self) end |
#change_for_autosave?(doc) ⇒ 부울
자동 저장에 대한 변경 사항이 있는지 확인
document.changed_for_autosave?
40 41 42 |
# 파일 'lib/mongoid/association/referenced/auto_save.rb', 줄 40 def change_for_autosave?(doc) doc.new_record? || doc.변경되었나요? || doc.Marked_for_destruction? end |