0

「ビデオ」と「画像」など、2つの異なるモデル/テーブルからのエントリを含むギャラリーを作成する必要があります。これを処理するための最良の方法は何ですか?それらを別のテーブルに保持したいのですが、一緒に取得します(たとえば、最新の50枚の画像とビデオ)。単一テーブル継承は適合しないようです。何か案は?

4

2 に答える 2

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
于 2012-05-15T18:35:09.650 に答える
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
于 2012-05-15T18:34:54.813 に答える