2012-03-07 6 views
3

私は名前、説明、sku番号などの基本情報を持つ一般的な製品モデルを持っていたいと思います。また、本質的に製品モデルを拡張する特定のタイプの製品である別のモデルが必要です。たとえば、色、サイズなどの追加の列を持つ服装モデルを用意したいと考えています。モデルをレールでどのように延長できますか?

これを実装するベストプラクティスは何ですか?私は多態性または単一表継承を考えています。たぶん私は間違った道を行くでしょうか?

答えて

5

単一テーブル継承(documentation)が一般的なアプローチです。もう1つは、共有機能のためにモジュールを使用することです。

モジュールの使用例を次に示します。

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 
関連する問題