0

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

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

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

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

谢谢!

4

1 回答 1

2

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

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

于 2012-07-01T10:04:42.937 回答