我正在构建一个需要计算各种公司的销售佣金的 RoR 应用程序。随着新公司开始使用它,应用程序上线后将会有新的佣金模式。这些佣金通常表示为复杂的 MS Excel 公式,但并非总是如此。我需要将这些重新实现到 Ruby 中。
例如,佣金模型可能是将以下几行加在一起:
column_1 * ( column_2 / column_3)
if ( column_6 > column_1 ) column_5 * column_4
if ( column_2 < column_1 ) column_2
鉴于上线后会有新的佣金模型,将这些模型存储在数据库中的最佳方式是什么?(这部分不需要过于用户友好,只有开发人员会添加新模型)
显然,这可以通过eval
从数据库中读取上述内容来完成。除了安全问题之外,它感觉不像是一个“干净”的解决方案。
我还能如何解决这个问题?
我一直在研究 DSL,使用 Excel 文件作为黑盒计算器、公式宝石,我正在努力寻找一种很好的方法来做到这一点。
TIA