我熟悉使用 rails 的多态关联,其中可以将模型声明为多态以获得属于许多其他模型的能力,例如:
class Comment < ActiveRecord::Base
belongs_to :commentable, :polymorphic => true
end
class Article < ActiveRecord::Base
has_many :comments, :as => :commentable
end
class Photo < ActiveRecord::Base
has_many :comments, :as => :commentable
end
class Event < ActiveRecord::Base
has_many :comments, :as => :commentable
end
是否有一种常见的模式来处理相反的情况,其中一个模型可以有许多其他模型,这些模型将通过相同的接口访问(例如,一个人有很多宠物,宠物可以是狗、猫等) ? 我应该只创建一个虚拟属性吗?