DataMapper 아이디어는 ActiveRecord보다 definitely better입니다. RDBMS 및 NoSQL 상점을 포함하여 다양한 데이터 저장소 용 API가 하나 있습니다. DataMapper는 ActiveRecord보다 훨씬 똑똑합니다. 그것에는 "전략적 적재 적재"가 있습니다. 이 기능은 "N + 1 쿼리 문제"를 혼자서 지 웁니다. 또한 Text 속성과 같은 무거운 필드를 지연로드 할 수 있습니다. DataMapper를 사용하면 중첩 된 조건의 해시를 제공하여 복잡한 개체 그래프를 만들고 검색 할 수 있습니다. ActiveRecod는 프로덕션의 연결에 사용하기에는 적합하지 않습니다. include 메소드는 추악하고 설정 불가능합니다. 2010 년 10 월 Josh Symonds는 patch for this method을 작성하여 eager가로드되지 않도록 필드를 제외 할 수 있습니다. 그러나 그 경로는 무시되었고 오늘 우리는 같은 못생긴 방법을 포함하고 있습니다.ActiveRecord 대신 DataMapper를 사용하십시오.
화려한 AREL이 적용된 Rails3에서도 ActiveRecord는 레일에 가장 적합한 Orm과 거리가 멀습니다. "와우, 새로운 보석 metawhere가 Article.where(:title.matches => 'Hello%', :created_at.gt => 3.days.ago)
같은 멋진 코드를 작성할 수 있습니다."라고 말할 수 있습니다. 그러나 잠시 기다리십시오. DataMapper는이 상자를 지원합니다! 어쩌면 DataMapper처럼 보이게 ActiveRecord를 수정하는 것이 더 나은 orm을 확장하고 지원하는 것일까 요? DataMapper에 대한 자세한 내용은 http://datamapper.org/에서 확인할 수 있습니다.
필자는 이후 릴리스에서 레일스가 사용할 orm을 선택해야한다고 생각합니다. 이제는 데이터베이스 선택이 가능합니다. 그것도 단 하나의 옵션 "ActiveRecord"를 가지고, 사람들은 가능한 대안을 검색 할 것입니다. 레일을 배우기 시작했을 때 ActiveRecord에 대한 지원 만 있다고 생각했습니다. 그리고 나중에 나는 다른 것을 찾기 위해 노력조차하지 않았다.
왜 내가이 모든 것을 쓰고 있습니까? 나는이 좋은 ORM에 더 많은 관심을 기울일 필요가 있다고 생각한다. 인기 있거나별로 인기가없는 보석 개발자라면 DataMapper의 지원을 추가하는 것에 대해 생각해보십시오. DataMapper 커뮤니티는 ActiveRecord 또는 다른 ORM에서 마이그레이션 가이드를 작성하고 설명서를 최신 상태로 유지해야합니다. 저로서는 DataMapper 커뮤니티가 더 많은 사람들을 필요로하며 귀하가 그들 중 하나일지도 모릅니다. 이 ORM의 유일한 단점은 문서가 부족하여 도움이 될 수 있습니다.
그럼 어떻게 생각하십니까?
나는 그것을 알고 그것을 사용했다. 하지만 그것은 그렇게 분명하지 않습니다. (레일스에서 당신은 그것을 찾을 수 없습니다. "skip-active-record") – AlexParamonov