1
저는 각 모델에 해시를 반환하는 메소드가있는 프로젝트에 STI를 사용하고 있습니다. 해당 해시는 해당 모델의 특정 프로필입니다. 각 자식 모델이 부모의 해시를 검색하여 자체에 추가하려고합니다. 아래 예제가 있습니다단일 테이블 상속을 통해 부모 특성에 액세스하는 방법?
class Shape
include Mongoid::Document
field :x, type: Integer
field :y, type: Integer
embedded_in :canvas
def profile
{ properties: {21} }
end
end
class Rectangle < Shape
field :width, type: Float
field :height, type: Float
def profile
super.merge({ location: {32} })
end
end
Rectangle의 프로파일 메소드가 Shape의 고유 한 메소드를 리턴하는 방법을 알아 내려고하고 있습니다. 결과는
(properties => 21, location => 32)
상속받은 하위에서 부모에게 액세스하려면 어떻게해야합니까? 그것은 단지 슈퍼입니까? 지난 며칠 동안 이걸 붙잡 았어. 도움이 많이 감사!
우, 바보 같은 실수. 고마워 피터! 슈퍼 변수를 로컬 변수에 저장하는 것이 이치에 맞습니까? 이 예제에서 super는 부모의 해시를 반환합니다. 그렇습니까? –
예, 'super'는이 경우 부모의 해시를 반환합니다. 귀하의 첫 번째 질문에 관해서는 결과를 저장하고 부모 메소드를 다시 호출하지 않고 액세스하려는 경우 "예"라고 말합니다. –