如何使用rails扩展模型?

时间:2012-03-07 01:55:55

标签: ruby-on-rails model-view-controller model

我希望有一个通用的产品型号,其中包含名称,描述,sku编号等基本信息。我还希望有另一种型号,它是一种特定类型的产品,实质上扩展了产品型号。例如:我想要一个服装模型,其中包含颜色,大小等其他列。

实施此操作的最佳做​​法是什么?我在想多态或单表继承。也许我走错了路?

1 个答案:

答案 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