我目前有一个metric
模型,可能需要两个operands
并根据其operation_type
执行计算,通过自定义结果方法生成结果。这是按预期工作的。Rails - 自引用模型?
为了使其具有可扩展性,我希望能够使用两个操作数(如当前),一个操作数和一个度量或两个度量来执行计算。这是因为它的可扩展性 - 我可以使用以前的操作结果。
我卡在哪里是如何创建这个自我加入 - 我想我需要沿着多态自引用的道路,但文档并没有引导我回答。此外,我还有一个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
表中来实现此目的(左和右是如果方程是减法,例如,它知道哪一个被拿走)?我不确定这是否是一个理想的解决方案,因为它们在很多情况下都是空的。