2012-08-30 2 views
0

AR에 대한 오랜 경험을 통해 DataMapper를 ORM 프레임 워크로 사용하고 있습니다. 그런 이유로 저는 때때로 AR로부터 어떤 행동을 반영하는 특정한 DM 기능을 찾으려고 노력합니다. 때로는 운이 좋고 가끔은 그렇지 않습니다. #reload 지시문을 사용하면 일종의 limbo입니다. 이 방법은 존재하지만 어쨌든 내가 기대 한대로하지는 않습니다. 기본적으로 인스턴스 속성이 DB를 찾도록 업데이트되는 AR 동작 대신 DM은 인스턴스의 모든 속성을 "로드되지 않음"으로 표시합니다.DataMapper를 사용하여 인스턴스를 다시로드하는 방법

DM을 사용하여 달성 할 수 있는지 누가 알 수 있습니까?

답변

1

DataMapper는 속성을로드하지 않은 것으로 표시하고 다음 액세스시로드합니다.

이것은 lazy loading 그룹 지원의 결과입니다. DM-1은 제한된 속성 집합 만로드하기 위해 다음에 어떤 속성이 액세스되는지보기 위해 기다립니다.

기본적으로 모든 속성은 : 기본 그룹에 있습니다. 따라서 한 번 누르면 모든 속성이로드됩니다.

이 게으른 행동을하면 다음과 같은 작업을 수행 할 수 원하지 않는 경우

:

resource = YourClass.first(:some => :stuff) 
# full non lazy reload (make sure you do not have 
# a reference to old somewhere that causes confusion 
resource = resource.model.get(resource.id) 
관련 문제