私は最初に単一のテーブル継承として実装した問題に対する最善のアプローチを研究してきましたが、テーブルに数千の列が含まれる可能性があるため、スケーラビリティについて深く懸念しています。
したがって、問題は、それぞれのメソッドがまったく同じで、それぞれに含まれる属性のみが異なる製品が欲しいということです。この状況では、複数クラスの継承 (レールではネイティブにサポートされていませんか?) が最良のアプローチまたはある種のポリモーフィックな関連付けになるようです。
次を目指して頑張りたいと思います
#product.rb
Class Product < ActiveRecord::Base
attr_accessible :title .....
def to_s # some arbitrary method used by all extending classes
....
end
end
#book.rb
class Book < Product
attr_accessible :author...
end
したがって、各サブクラスに必要な属性について製品が知るのではなく、本が製品からメソッドを継承することを望みます。可能であれば、1 つのクエリですべての製品を取得します。
これにアプローチする最善の方法を知る必要があります。完全に間違っている場合は、上記のコードは問題を単純化するための単なる例であることに注意してください。