我目前有一个metric
模型,它可以取两个operands
并基于其执行计算operation_type
,通过自定义结果方法产生结果。这按预期工作。
为了使其可扩展,我希望能够使用两个操作数(目前),一个操作数和一个指标,或两个指标来执行计算。这样做的原因是它是可扩展的——我可以使用以前操作的结果。
我被困的地方是如何创建这个自我加入——我想我需要以某种方式走上多态自我引用的道路,但文档并没有引导我找到答案。我目前还有一个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
和来更简单地实现这一点(如果方程是减法,左和右是这样的,对于例如,它知道哪个被带走)?我不确定这是否是一个理想的解决方案,因为在很多情况下它们都是空的。right_metric
metric