클래스: Mongoid::Fields::Standard

상속:
객체
  • 객체
모두 표시
확장자:
전달 가능
다음에 정의됨:
lib/mongoid/fields/standard.rb

개요

Mongoid가 유지하는 BSON 문서에 일관적인 스키마 구조를 시행하다 데 사용되는 표준 필드 정의(이름, 유형 등)를 나타냅니다.

직접 알려진 하위 클래스

암호화 됨 , 외래 키, 현지화

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

생성자 세부 정보

#initialize(name, options = {}) ⇒ Standard

이름과 선택적 추가 옵션을 사용하여 새 필드 를 만듭니다.

예시:

새 필드 를 만듭니다.

Field.new(:name, :type => String)

매개변수:

  • 옵션 (해시) (기본값: {})

    필드 옵션.

옵션 해시(options):

  • :type (클래스)

    필드의 클래스입니다.

  • :default (객체)

    필드 의 기본값 입니다.

  • :label (string)

    필드의 레이블입니다.



71
72
73
74
75
76
77
78
79
80
81
82
83
# 파일 'lib/mongoid/fields/standard.rb', 줄 71

def 초기화(이름, 옵션 = {})
  @name = 이름
  @options = 옵션
  @label = 옵션[:label]
  @default_val = 옵션[:default]

  # @todo: Durran, 4.0 에서 클래스를 매개변수로 사용하도록 API를 변경합니다.
  # 변경하지 않고 #2529 문제를 해결하기 위해 일시적으로 표시됩니다.
  # 생성자 서명.
  만약 default_val.response_to?(:call)
    정의_기본_메서드(옵션[:klass])
  end
end

인스턴스 속성 세부 정보

#default_val객체

문서 에 정의된 필드에 대한 동작을 정의합니다. 인스턴스 변수에 대한 판독기를 설정합니다.



15
16
17
# 파일 'lib/mongoid/fields/standard.rb', 줄 15

def default_val
  @default_val
end

#레이블객체

문서 에 정의된 필드에 대한 동작을 정의합니다. 인스턴스 변수에 대한 판독기를 설정합니다.



15
16
17
# 파일 'lib/mongoid/fields/standard.rb', 줄 15

def 레이블
  @label
end

#이름객체

문서 에 정의된 필드에 대한 동작을 정의합니다. 인스턴스 변수에 대한 판독기를 설정합니다.



15
16
17
# 파일 'lib/mongoid/fields/standard.rb', 줄 15

def 이름
  @name
end

#options객체

문서 에 정의된 필드에 대한 동작을 정의합니다. 인스턴스 변수에 대한 판독기를 설정합니다.



15
16
17
# 파일 'lib/mongoid/fields/standard.rb', 줄 15

def 옵션
  @options
end

인스턴스 메서드 세부 정보

#add_atomic_changes(문서, name, key, mods, new, old) ⇒ Object

이 유형의 크기 조정 가능한 필드에 대한 원자적 변경 사항을 추가합니다.

필드.add_atomic_changes(doc, "key", {}, [], [])

예시:

원자적 변경 사항을 추가합니다.

매개변수:

  • 문서 (문서)

    추가할 문서입니다.

  • 이름 (string)

    필드의 이름입니다.

  • (string)

    필드의 원자 위치입니다.

  • mods (해시)

    현재 수정 사항.

  • 신규 (배열)

    추가할 새 요소입니다.

  • old (배열)

    오래된 요소가 제거되고 있습니다.



30
31
32
# 파일 'lib/mongoid/fields/standard.rb', 줄 30

def add_atomic_changes(문서, 이름, , mods, 신규, old)
  mods[] = 신규
end

#연관 관계메타데이터

외래 키인 경우 필드 의 메타데이터 를 가져옵니다.

예시:

메타데이터 를 가져옵니다.

field.

반환합니다:

  • (Metadata)

    연결 메타데이터입니다.



121
122
123
# 파일 'lib/mongoid/fields/standard.rb', 줄 121

def 연관 관계
  @association ||= 옵션[:association]
end

#eval_default(doc) ⇒ 객체

기본값 을 평가하고 반환합니다. 필요한 경우 직렬화, proc 호출 및 복제를 처리하다 합니다.

예시:

기본값 을 평가합니다.

field.eval_default(document)

매개변수:

  • doc (문서)

    필드 가 속한 문서 입니다.

반환합니다:

  • (객체)

    직렬화된 기본값 입니다.



43
44
45
46
47
48
49
# 파일 'lib/mongoid/fields/standard.rb', 줄 43

def eval_default(doc)
  만약 필드 = doc.__selected_fields
    평가된_기본값(doc) 만약 포함?(필드)
  other
    평가된_기본값(doc)
  end
end

#foreign_key?true | false

이 필드 가 외래 키입니까?

예시:

필드가 외래 키인가요?

field.foreign_key?

반환합니다:

  • (true | false)

    필드 가 외래 키인 경우.



57
58
59
# 파일 'lib/mongoid/fields/standard.rb', 줄 57

def foreign_key?
  거짓
end

#게으르다?true | false

이 필드는 지연 기본 평가를 수행하나요?

예시:

필드 가 게으른가요?

field.lazy?

반환합니다:

  • (true | false)

    필드가 지연된 경우.



91
92
93
# 파일 'lib/mongoid/fields/standard.rb', 줄 91

def 게으른가요?
  거짓
end

#localize_present?true | false

현지화된 필드 에 값이 존재해야 하나요?

예시:

현지화된 필드 에 값이 존재해야 하나요?

field.localize_present?

반환합니다:

  • (true | false)

    필드 에 현재가 적용되는 경우.



111
112
113
# 파일 'lib/mongoid/fields/standard.rb', 줄 111

def localize_present?
  거짓
end

#현지화?true | false

필드 가 현지화되어 있나요?

예시:

필드가 현지화되어 있나요?

field.localized?

반환합니다:

  • (true | false)

    필드 가 현지화된 경우.



101
102
103
# 파일 'lib/mongoid/fields/standard.rb', 줄 101

def 현지화?
  거짓
end

#object_id_field?true | false

필드가 BSON::ObjectId입니까?

예시:

필드가 BSON::ObjectId입니까?

field.object_id_field?

반환합니다:

  • (true | false)

    필드 가 BSON::ObjectId인 경우.



131
132
133
# 파일 'lib/mongoid/fields/standard.rb', 줄 131

def object_id_field?
  @object_id_field ||= (유형 == BSON::ObjectId)
end

#pre_processed?true | false

필드 가 기본값 을 사전 처리하나요?

예시:

필드 가 기본값 을 사전 처리하나요?

field.pre_processed?

반환합니다:

  • (true | false)

    필드의 기본값 이 사전 처리된 경우입니다.



141
142
143
144
# 파일 'lib/mongoid/fields/standard.rb', 줄 141

def pre_processed?
  @pre_processed ||=
    (옵션[:pre_processed] || (default_val && !default_val.is_a?(::Proc)))
end

#유형클래스

클래스 이름에서 유추된 이 필드의 유형을 가져옵니다.

예시:

유형을 가져옵니다.

field.type

반환합니다:

  • (클래스)

    클래스의 이름입니다.



152
153
154
# 파일 'lib/mongoid/fields/standard.rb', 줄 152

def 유형
  @type ||= 옵션[:type] || 객체
end