2012-07-20 3 views
1

has_many을 추가하면 다형성 연관과 마찬가지로 여러 유형의 정렬 된 컬렉션을 반환합니다. 나는 그룹이 어떻게여러 모델을 하나의 연결로 집계

class Group < AR:Base 
    has_many ?? 
end 

class Picture < AR::Base; belongs_to :group; end 
class Video < AR::Base; belongs_to :group; end 
class Audio < AR::Base; belongs_to :group; end 

는 SQL을 사용하여 belong_to 모든 사진, 비디오 및 오디오를 돌려줍니다. acts_as_list 또는 비슷한 것으로 주문 된 '미디어 항목'컬렉션을 갖고 싶기 때문에 Ruby를 사용하는 것에 의존하고 싶지 않습니다.

+0

목록으로 동작하는 것은 확실하지 않지만 행의 일부는 조인 테이블 (다형성)을 사용하여 가능해야하며 포함해야합니다. – rubish

답변

0

STI (단일 테이블 상속)를 사용하십시오.

class Group < AR:Base 
    has_many :media_items 
end 

class MediaItem < AR::Base; belongs_to :group; end 
class Picture < MediaItem; end 
class Video < MediaItem; end 
class Audio < MediaItem; end 

type 열을 DB 스키마에 추가하기 만하면됩니다.

관련 문제