3
我想要一个具有基本信息(如名称,说明,sku编号等)的通用产品模型。我还希望有另一个模型,它是特定类型的产品,基本上扩展了产品模型。例如:我想要有一个有颜色,大小等附加列的服装模型。如何使用导轨扩展模型?
实现此目的的最佳实践是什么?我想多态或单表继承。也许我会走错路?
我想要一个具有基本信息(如名称,说明,sku编号等)的通用产品模型。我还希望有另一个模型,它是特定类型的产品,基本上扩展了产品模型。例如:我想要有一个有颜色,大小等附加列的服装模型。如何使用导轨扩展模型?
实现此目的的最佳实践是什么?我想多态或单表继承。也许我会走错路?
单表继承(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