【问题标题】:Rails - Self referencing model?Rails - 自引用模型?
【发布时间】: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_metricright_metric 来更简单地实现这一点(左右都是如此例如,如果等式是减法,它知道哪个被去掉了)?我不确定这是否是一个理想的解决方案,因为在很多情况下它们都是空的。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 rails-activerecord


    【解决方案1】:

    我相信我可能在这里偶然发现了一个可能的情况 - 我没有使用度量引用本身,而是在 operand 模型中添加了一个 metric_id 列,这意味着它可以引用一个对象属性或另一个指标。

    我认为这个解决方案有效,尽管操作数模型中总会有至少一个空列;因此,仍然欢迎更好的解决方案。

    谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      • 2021-02-19
      • 1970-01-01
      • 2021-12-24
      • 2011-05-19
      • 1970-01-01
      • 2018-04-24
      相关资源
      最近更新 更多