【问题标题】:Rails reporting objectsRails 报告对象
【发布时间】:2012-07-01 15:31:23
【问题描述】:

我目前正在尝试在 Rails 应用程序中实现报告模块。多亏了这里提供的一些帮助:Ruby on Rails object reporting,我决定继续编写通用指标并使用这些指标填充报告。

我必须解决的是如何创建指标 - 基本上我需要有一个可以在我的定位框架中使用的 metric 对象(例如,如果我有一个 target 对象,其中 target.value 是 0.5 ,我可以让target.metric_id 知道目标是哪个指标,从而报告它)。

我的问题是如何在模型结构中存储度量公式。一个简单的指标示例是利润,我可以在其中做sales.selling_prices.sum - sales.cost_prices.sum。如何设置一些允许存储此公式的列?所有公式都将使用其他对象进行计算,如利润示例。

任何帮助将不胜感激。

谢谢!

【问题讨论】:

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


    【解决方案1】:

    根据你的公式有多大的野心,你可以从这样的指标开始:

    operation_type:string, one of %w(add sub mult div)
    left_operand:decimal
    right_operand:decimal
    

    然后,要计算,您可能有一个度量方法,例如:

    def result
      if operation_type == 'add'
        left_operand + right_operand
      elsif operation_type == 'sub'
        left_operand - right_operand
      ...
    end
    

    当您创建指标(可能是某种管理面板)时,您可以通过多种方式选择源输入(例如,将 left_operand 设置为 sales. sell_prices.sum 等)。

    【讨论】:

    • 这正是我一直在寻找的——我脑子里有这样一个模糊的想法,但无法完全实现。谢谢!
    • 一个想法 - 任何想法如何将 left_operand 和 right_operand 设置为始终使用对象变量?即在我的指标中,左右操作数将始终是相同的变量(例如 sales. sell_prices.sum),我希望能够简单地调用 metric.result 而不必每次都选择对象。
    猜你喜欢
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多