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

我如何让组返回belong_to它使用 SQL 的所有图片、视频和音频。我真的不想求助于使用 Ruby,因为我还希望将“媒体项目”的集合与acts_as_list或类似命令一起排序。

4

1 回答 1

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列添加到您的数据库架构中。

于 2012-07-20T22:14:03.500 回答