모듈: Mongoid::Fields::ClassMethods
- 다음에 정의됨:
- lib/mongoid/fields.rb,
lib/mongoid/fields.rb
인스턴스 메서드 요약 접기
-
#attribute_names ⇒ Array<String>
이 객체 에서 사용할 수 있는 속성의 이름 배열 을 반환합니다.
-
#clean_localized_field_names(name) ⇒ 필드
지정된 필드 이름에서 _translations를 제거합니다.
-
#database_field_name(name) ⇒ string
데이터베이스 에 저장된 제공된 필드 의 이름을 가져옵니다.
-
#extract_id_field(attributes) ⇒ 객체
비공개
이 클래스에 정의된 별칭을 기반으로 지정된 속성 해시에서 ID 필드 를 추출합니다.
-
#필드(이름, 옵션 = {}) ⇒ 필드
문서에서 액세스할 수 있는 모든 필드를 정의합니다. 정의된 각 필드 에 대해 getter 및 setter가 문서의 인스턴스 메서드로 추가됩니다.
-
#id_fields ⇒ Array<Symbol | string>
비공개
이 모델 클래스의 ID 필드 목록을 문자열과 기호로 반환합니다.
-
#replace_field(name, type) ⇒ 직렬화 가능
필드 를 새 유형으로 바꿉니다.
-
#traverse_association_tree(key) {|The, When| ... } ⇒ 필드
비공개
연관 트리를 아래로 이동하여 주어진 키에 대한 필드 를 검색 합니다.
-
#using_object_ids? ⇒ true | false
BSON::ObjectIds
을 ID로 사용하고 있는지 여부를 확인할 수 있는 편리한 메서드입니다.
인스턴스 메서드 세부 정보
#attribute_names ⇒ Array<String>
이 객체 에서 사용할 수 있는 속성의 이름 배열 을 반환합니다.
ORM에 구애받지 않는 방식으로 필드 이름을 제공합니다. Rails v3.1+ 은(는) 이 메서드를 사용하여 JSON 요청에서 매개변수를 자동으로 래핑합니다.
454 455 456 |
# 파일 'lib/mongoid/fields.rb', 454줄 def attribute_names 필드.키 end |
#clean_localized_field_names(name) ⇒ 필드
지정된 필드 이름에서 _translations를 제거합니다. 이 작업은 동일한 이름(예: 접미사 _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
데이터베이스에 저장되는 제공된 필드의 이름을 가져옵니다. 필드의 별칭 지정 여부를 결정하는 데 사용됩니다.
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 필드 를 추출합니다.
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가 문서의 인스턴스 메서드로 추가됩니다.
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_fields ⇒ Array<Symbol | string>
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 모델 클래스의 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) ⇒ 직렬화 가능
필드 를 새 유형으로 바꿉니다.
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의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
연관 트리를 아래로 이동하여 주어진 키에 대한 필드 를 검색 합니다.
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로 사용하고 있는지 여부를 확인할 수 있는 편리한 메서드입니다.
514 515 516 |
# 파일 'lib/mongoid/fields.rb', 514줄 def using_object_ids? 필드["_id"].object_id_field? end |