我希望有一个通用的产品型号,其中包含名称,描述,sku编号等基本信息。我还希望有另一种型号,它是一种特定类型的产品,实质上扩展了产品型号。例如:我想要一个服装模型,其中包含颜色,大小等其他列。
实施此操作的最佳做法是什么?我在想多态或单表继承。也许我走错了路?
答案 0 :(得分:5)
单表继承(documentation)是一种常见方法。另一种方法是使用模块进行共享功能。
以下是使用模块的示例。
module Product
def method_for_all_products
# ...
end
end
class Clothing < ActiveRecord::Base
include Product
def clothing_specific_method
# ...
end
end
class Furniture < ActiveRecord::Base
include Product
end