根据规则计算价格(Ruby Rule Engine)

时间:2013-06-01 06:12:35

标签: ruby algorithm

有一些规则引擎,如Treetop或Wongi :: Engine,但似乎都不适合我的个人资料。

我想建立一个可以计算价格的灵活系统。例如:

雪橇的基本价格为100欧元

产品规则:

  • Rule_#0雪橇成本100€

时间规则:

  • 规则#1你在23:00之后购买了雪橇H =>你得到10€的折扣

日期规则:

  • Rule_#2你在圣诞节买了雪橇=>你得到10%(10€)的折扣

用户规则:

  • Rule_#3您的姓名是Santa =>你得到2€
  • 的折扣

规则也可以合并(排除/包含):

=>最终价格为100-10-10-2 = 78

1 个答案:

答案 0 :(得分:0)

AFAIK,没有捷径可以解决你的问题。

价格规则引擎需要知道底层模型,并能够引用它。通常,用于执行这些操作的最短,最有效的代码已经存在于例如ActiveResource或DataMapper。您可以提出的任何规则都可以直接在操作该模型的Ruby代码中直接表达。通过DSL进行定价,使其更加抽象,是您将单独构建的规则之上的更多工作。在预先打包的电子商务解决方案(数据模型已知)之外,不存在用于产品定价的预构建DSL。

您可能正在寻找面向对象的设计模式,而不是宝石或库。而且你还有很多工作要做。