모듈: Mongoid::Fields::ClassMethods

다음에 정의됨:
lib/mongoid/fields.rb,
lib/mongoid/fields.rb
more...

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#attribute_namesArray<String>

이 객체 에서 사용할 수 있는 속성의 이름 배열 을 반환합니다.

ORM에 구애받지 않는 방식으로 필드 이름을 제공합니다. Rails v3.1+ 은(는) 이 메서드를 사용하여 JSON 요청에서 매개변수를 자동으로 래핑합니다.

예시:

필드 이름 가져오기

Model.attribute_names

반환합니다:

  • (Array<String>)

    필드 이름

[소스 보기]

454
455
456
# 파일 'lib/mongoid/fields.rb', 454줄

def attribute_names
  필드.
end

#clean_localized_field_names(name) ⇒ 필드

지정된 필드 이름에서 _translations를 제거합니다. 이 작업은 동일한 이름(예: 접미사 _translations 포함)을 가진 필드 이름 또는 관계가 아직 존재하지 않는 경우에만 수행됩니다. 기존 필드 에 대한 이 검사는 재귀적으로 수행됩니다.

매개변수:

  • 이름 (string | 기호)

    정리할 필드 의 이름입니다.

반환합니다:

  • (필드)

    _translations가 없는 필드 이름

[소스 보기]

100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# 파일 'lib/mongoid/fields.rb', 100줄

def Clean_localized_field_names(이름)
  이름 = database_field_name(이름.to_s)

  class = self
  []. do |res|
    ar = 이름.split('.')
    ar.each_with_index do |fn, i|
       = fn
      하지 않는 한 class.필드.키?(fn) || class.관계.키?(fn)
        만약 fn.end_with?(TRANSLATIONS_SFX)
           = fn.delete_suffix(TRANSLATIONS_SFX)
        other
           = fn
        end

      end
      res.push()

      만약 class.필드.키?(fn)
        res.push(ar.제거(i+1).가입('.')) 하지 않는 한 i == ar.분량 - 1
        휴식
      elsif class.관계.키?(fn)
        class = class.관계[].class
      end
    end
  end.가입('.')
end

#database_field_name(name) ⇒ string

데이터베이스에 저장되는 제공된 필드의 이름을 가져옵니다. 필드의 별칭 지정 여부를 결정하는 데 사용됩니다.

매개변수:

  • 이름 (string | 기호)

    가져올 이름입니다.

반환합니다:

  • (string)

    db에 저장되는 필드 의 이름입니다.

[소스 보기]

464
465
466
# 파일 'lib/mongoid/fields.rb', 464줄

def database_field_name(이름)
  필드.database_field_name(이름, 관계, aliased_fields, aliased_associations)
end

#extract_id_field(attributes) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이 클래스에 정의된 별칭을 기반으로 지정된 속성 해시에서 ID 필드 를 추출합니다.

매개변수:

  • 속성 (해시)

    검사할 속성입니다.

반환합니다:

  • (객체)

    ID 값입니다.

[소스 보기]

83
84
85
86
87
88
89
90
# 파일 'lib/mongoid/fields.rb', 83줄

def extract_id_field(속성)
  id_fields. do |k|
    만약 v = 속성[k]
      반환 v
    end
  end
  nil
end

필드 #필드(이름, 옵션 = {}) ⇒ 필드

문서에서 액세스할 수 있는 모든 필드를 정의합니다. 정의된 각 필드 에 대해 getter 및 setter가 문서의 인스턴스 메서드로 추가됩니다.

예시:

필드 를 정의합니다.

field :score, type: Integer, default: 0

매개변수:

  • 이름 (기호)

    필드의 이름입니다.

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

    필드 에 전달할 옵션입니다.

옵션 해시(options):

  • :type (클래스 | 기호 | string)

    필드 의 유형입니다.

  • :label (string)

    필드의 레이블입니다.

  • :default (Object | Proc)

    필드의 기본값.

반환합니다:

  • (필드)

    생성된 필드

[소스 보기]

483
484
485
486
487
488
489
490
491
# 파일 'lib/mongoid/fields.rb', 483줄

def 필드(이름, 옵션 = {})
  명명된 = 이름.to_s
  유효성 검사기::매크로.유효성 검사(self, 이름, 옵션)
  추가됨 = add_field(명명된, 옵션)
  descendants. do |하위 클래스|
    하위 클래스.add_field(명명된, 옵션)
  end
  추가됨
end

#id_fieldsArray<Symbol | string>

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이 모델 클래스의 ID 필드 목록을 문자열과 기호로 반환합니다.

반환합니다:

  • (Array<Symbol | string>)

    ID 필드 목록입니다.

[소스 보기]

64
65
66
67
68
69
70
71
72
73
# 파일 'lib/mongoid/fields.rb', 64줄

def id_fields
  IDS.dup. do |id_fields|
    aliased_fields. do |k, v|
      만약 v == '_id'
        id_fields << k.to_sym
        id_fields << k
      end
    end
  end
end

#replace_field(name, type) ⇒ 직렬화 가능

필드 를 새 유형으로 바꿉니다.

예시:

필드 를 바꿉니다.

Model.replace_field("_id", String)

매개변수:

  • 이름 (string)

    필드의 이름입니다.

  • 유형 (클래스)

    새로운 유형의 필드 입니다.

반환합니다:

[소스 보기]

502
503
504
505
# 파일 'lib/mongoid/fields.rb', 502줄

def replace_field(이름, 유형)
  remove_defaults(이름)
  add_field(이름, 필드[이름].옵션.merge(유형: 유형))
end

#traverse_association_tree(key) {|The, When| ... } ⇒ 필드

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

연관 트리를 아래로 이동하여 주어진 키에 대한 필드 를 검색 합니다.

매개변수:

  • (string)

    연관 트리를 검색 하는 데 사용되는 키입니다.

  • &block

    차단.

수율 매개변수:

  • (기호)

    현재 메서드.

  • (기호 | string)

    필드 또는 관계.

  • 여부 (true | false)

    두 번째 yield 매개변수가 필드 인지 여부입니다.

반환합니다:

  • (필드)

    검색 이 끝날 때 지정된 키에 대해 발견된 필드 입니다. 마지막으로 발견된 것이 연관 관계이거나 주어진 키에 대한 필드 가 없는 경우 nil을 반환합니다.

[소스 보기]

533
534
535
# 파일 'lib/mongoid/fields.rb', 533줄

def traverse_association_tree(, &차단)
  필드.traverse_association_tree(, 필드, 관계, aliased_associations, &차단)
end

#using_object_ids?true | false

BSON::ObjectIds 을 ID로 사용하고 있는지 여부를 확인할 수 있는 편리한 메서드입니다.

예시:

이 클래스는 객체 ID를 사용하나요?

person.using_object_ids?

반환합니다:

  • (true | false)

    클래스가 ID에 BSON::ObjectIds를 사용하는 경우.

[소스 보기]

514
515
516
# 파일 'lib/mongoid/fields.rb', 514줄

def using_object_ids?
  필드["_id"].object_id_field?
end