【问题标题】:Ruby on Rails object reportingRuby on Rails 对象报告
【发布时间】:2012-07-02 02:50:21
【问题描述】:

我目前正在开发一个包含大量不同对象的 ruby​​ 应用程序。作为此应用程序的一部分,我想添加一个报告引擎,允许用户针对应用程序中的几乎任何变量创建自定义报告 - 例如,他们可以创建一个报告,显示有多少百分比的客户拥有电话号码,或者街道名称以 E 开头的供应商的绝对数量。关键是,他们应该能够在应用程序中创建任何关于数据的报告,无论多么模糊,而无需依赖已经在应用程序中创建的数据.

我的问题是:我如何开始创建一个允许这种情况发生的结构?是否有必要指定可用作报告一部分的所有可能变量(例如,我需要指定 customers.countcustomers.email_addresssuppliers.addresses.street_name 是上述示例的报告引擎可用的所有变量) ,或者这些可以以某种方式自动提供?

如果需要指定变量,最好的方法是什么?

我已经搜索了这方面的一些资源,但还没有找到任何资源 - 如果有人可以推荐一个来源,也将不胜感激。

谢谢!

【问题讨论】:

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


    【解决方案1】:

    考虑一下自己警告过这可能违反了 YAGNI。我强烈建议首先为您的用户想要的最常见的报告类型构建报告,以便您可以使它们可用且美观。在抽象级别执行此操作要复杂一个数量级,容易出错,如果您不小心可能会导致一些安全问题,并且很难制作漂亮的报告而不是通用的报告。

    也就是说,看看像Active Admin 这样的东西,它提供了自定义过滤器和数据导出。您应该能够添加自定义范围以使其执行您想要的操作,但如果仍然没有,那么查看实现应该可以让您对所涉及的内容有一个很好的了解。

    【讨论】:

    • 感谢您的建议 - 非常感谢。我想添加此功能的原因不一定是创建实际报告,而是与目标引擎交互 - 例如管理员可以为他的用户设定一个目标,即为至少 90% 的客户获取电子邮件地址,并每天通过电话与客户联系至少 5 次。因此需要灵活性(管理员可能希望针对与他们相关的奇怪而美妙的事物)。
    • 他们可能将来想要它,但当前的管理员现在需要它吗?您开始走上实现自己的查询语言(或允许管理员用户只需输入 sql 或 ruby​​)的道路,这很难维护。固执己见,一开始只允许几种类型的目标,然后听取客户的意见以了解要添加的类型,最终在拥有大量(付费)客户后将其开放给强大的目标系统,这并没有错。跨度>
    • 公平评论 - 我当然不想在这里重新发明轮子,而且大多数客户可能需要相对有限数量的变量。我总是可以付费添加奇怪的自定义变量,这实际上可能更有吸引力。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 2012-04-04
    • 2010-09-15
    相关资源
    最近更新 更多