【发布时间】:2012-07-16 10:36:21
【问题描述】:
我目前有一个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 模型;这是为了在我的计算中使用另一个指标的结果而采取的最佳方法,还是我可以通过在我现有的metric 表中添加left_metric 和right_metric 来更简单地实现这一点(左右都是如此例如,如果等式是减法,它知道哪个被去掉了)?我不确定这是否是一个理想的解决方案,因为在很多情况下它们都是空的。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 rails-activerecord