2012-05-15 5 views
0

"video"및 "image"라고 가정 해 봅니다. 두 개의 다른 모델/테이블에서 항목이 포함 된 갤러리를 만들어야합니다. 이것을 처리하는 가장 좋은 방법은 무엇입니까? 서로 다른 테이블에 보관하고 싶지만 함께 가져와야합니다 (예 : 가장 최근 50 개의 이미지와 비디오). 단일 테이블 상속이 적합하지 않은 것 같습니다. 어떤 아이디어?여러 Rails 모델 쿼리

답변

1

다형성은 친구입니다.

class Video 
    belongs_to :viewable, :polymorphic => true 
end 

class Image 
    belongs_to :viewable, :polymorphic => true 
end 

class Gallery 
    has_many :media, :as => :viewable 
end 
+0

감사합니다. –

0

내가 알아 낸 가장 좋은 방법은 다른 테이블에 대한 다형 참조가있는 모든 디스플레이 테이블을 만드는 것입니다.

class Gallery 
    has_many :displays 
end 

class Display 
    belongs_to :gallery 
    belongs_to :derived_display, :polymorphic => true 
end 

class Video 
    has_one :display, :as => :derived_display 
end