Ruby on rails RubyonRails对象报告

Ruby on rails RubyonRails对象报告,ruby-on-rails,database,ruby-on-rails-3,Ruby On Rails,Database,Ruby On Rails 3,我目前正在开发一个具有大量不同对象的ruby应用程序。作为此应用程序的一部分,我想添加一个报告引擎,允许用户创建应用程序中几乎任何变量的自定义报告-例如,他们可以创建一个报告,显示有多少百分比的客户有电话号码,或者街道名称以E开头的供应商的绝对数量。关键是,他们应该能够在应用程序中创建任何数据报告,无论数据多么模糊,而无需依赖已经在应用程序中创建的数据 我的问题是:如何开始创建允许这种情况发生的结构?是否有必要指定可作为报告一部分使用的所有可能变量(例如,对于上述示例,我需要指定customer

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

我的问题是:如何开始创建允许这种情况发生的结构?是否有必要指定可作为报告一部分使用的所有可能变量(例如,对于上述示例,我需要指定
customers.count
customers.email\u address
suppliers.addresses.street\u name
是报告引擎可用的所有变量),或者可以自动提供这些信息吗

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

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

谢谢

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


也就是说,看看类似的东西,它提供了自定义过滤器和数据导出。您应该能够添加自定义作用域,让它做您想做的事情,但是如果它仍然不能做,那么查看实现应该会让您对所涉及的内容有一个很好的了解

谢谢你的建议,非常感谢。我想添加此功能的原因不一定是为了创建实际的报告,而是为了与目标引擎交互-例如,管理员可以为其用户设置一个目标,即至少90%的客户获得电子邮件地址,并且每天至少通过电话联系5个客户。因此需要灵活性(管理员可能希望针对与他们相关的奇怪和奇妙的事情)。他们可能在将来想要它,但现在的管理员想要它吗?您正在开始实现自己的查询语言(或者允许管理员用户只键入sql或ruby),这是一个维护的难题。固执己见,一开始只允许几种类型的目标,然后倾听你的客户需要添加什么类型的目标,最终在拥有大量(付费)客户后将其开放给一个强大的目标系统,这没有什么错。公正的评论-我当然不想在这里重新发明轮子,而且,大多数客户可能需要数量相对有限的变量。我总是可以付费添加奇怪的自定义变量,这实际上可能更吸引人。谢谢