모듈: Mongoid::Attributes::ClassMethods

다음에 정의됨:
lib/mongoid/attributes.rb

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#alias_attribute(이름, 원본) ⇒ 객체

제공된 이름에 원래 필드의 별칭을 지정합니다. 이렇게 하면 별칭이 지정된 게터, 세터, 존재 확인 및 모든 더티 속성 메서드가 제공됩니다.

예시:

속성에 별칭을 지정합니다.

class Product
  include Mongoid::Document
  field :price, :type => Float
  alias_attribute :cost, :price
end

매개변수:

  • 이름 (기호)

    새 이름입니다.

  • 원본 (기호)

    원래 이름입니다.



325
326
327
328
329
330
331
332
333
334
335
336
337
338
# 파일 'lib/mongoid/attributes.rb', 줄 325

def alias_attribute(이름, 원본)
  aliased_fields[이름.to_s] = 원본.to_s

  alias_method 이름, 원본
  alias_method "#{name}=", "#{원본}="
  alias_method "#{name}?", "#{original}?"
  alias_method "#{name}_change", "#{original}_change"
  alias_method "#{name}_changed?", "#{original}_changed?"
  alias_method "reset_#{name}!", "reset_#{original}!"
  alias_method "reset_#{name}_to_default!", "reset_#{original}_to_default!"
  alias_method "#{name}_was", "#{original}_was"
  alias_method "#{name}_write_change!", "#{original}_write_change!"
  alias_method "#{name}_before_type_cast", "#{original}_before_type_cast"
end

#unalias_attribute(name) ⇒ 객체

필드 별칭을 제거합니다.

매개변수:

  • 이름 (기호)

    제거 별칭 필드 이름입니다.



343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
# 파일 'lib/mongoid/attributes.rb', 줄 343

def unalias_attribute(이름)
  하지 않는 한 aliased_fields.삭제(이름.to_s)
    올리다 AttributeError, "필드 #{name} 은(는) 별칭이 지정된 필드 가 아닙니다."
  end

  remove_method 이름
  remove_method "#{name}="
  remove_method "#{name}?"
  remove_method "#{name}_change"
  remove_method "#{name}_changed?"
  remove_method "reset_#{name}!"
  remove_method "reset_#{name}_to_default!"
  remove_method "#{name}_was"
  remove_method "#{name}_write_change!"
  remove_method "#{name}_before_type_cast"
end