2012-03-07 91 views
3

我想要一个具有基本信息(如名称,说明,sku编号等)的通用产品模型。我还希望有另一个模型,它是特定类型的产品,基本上扩展了产品模型。例如:我想要有一个有颜色,大小等附加列的服装模型。如何使用导轨扩展模型?

实现此目的的最佳实践是什么?我想多态或单表继承。也许我会走错路?

回答

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