多种模型的多态关联

时间:2012-01-27 14:37:06

标签: ruby-on-rails ruby ruby-on-rails-3.1

我有一个场景,我有页面模型,现在每个页面都可以是第一类。让我们说页面可以是类型的视频或图像和许多其他类型。由于视频和图像都有自己的模型,我想让这个页面变成多态。在轨道上可以吗?

class Page < ActiveRecord::Base
  belongs_to :pageable, :polymorphic => true
end

class Video < ActiveRecord::Base
  has_one :page, :as => :pageable, :class_name => 'Video'
end

class Image < ActiveRecord::Base
  has_one :page, :as => :pageable, :class_name => 'Image'
end

这有效吗?我的要求是在页面创建过程中,需要选择其中一种类型,然后在选择时将其转发为视频或图像形式。

1 个答案:

答案 0 :(得分:0)

有效。这就是提供多态关联的原因。你不需要“:class_name => 'Video',你可以放心地放弃它。”