私は現在、 2 つを取り、その に基づいて計算を実行し、カスタムの結果メソッドを通じて結果を生成metric
できるモデルを持っています。これは期待どおりに機能しています。operands
operation_type
これをスケーラブルにするために、(現在のように) 2 つのオペランド、1 つのオペランドと 1 つのメトリック、または 2 つのメトリックを使用して計算を実行できるようにしたいと考えています。その理由は、スケーラブルであるためです。以前の操作の結果を使用できます。
私が立ち往生しているのは、この自己結合を作成する方法です-どういうわけかポリモーフィックな自己参照の道をたどる必要があると思いますが、ドキュメントは私を答えに導きません。現在、モデルを追加してセットアップしていますが、calculated_metric
これが正しい方法かどうかはわかりません。
私のモデルは次のようになります。
class Metric < ActiveRecord::Base
attr_accessible :name, :operation_type_id
end
class Operand < ActiveRecord::Base
attr_accessible :object, :attribute
end
class Calculated_metric < ActiveRecord::Base
attr_accessible :metric_id, :calculated_metric_id
end
どんな援助でも大歓迎です。ありがとう!
編集:おそらくこれを少し明確にすることができます:私は現在別のcalculated_metric
モデルを持っています。これは私の計算で別のメトリックの結果を使用するための最良のアプローチですか、それとも既存のテーブルにleft_metric
とを追加するだけでこれを達成できますか(式が減算の場合、左と右はたとえば、どれが奪われているかを知っています)?多くの場合、null になるため、これが理想的な解決策であるかどうかはわかりません。right_metric
metric