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

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

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

底座价格为100欧元

产品规则:

  • Rule_#0雪橇的费用为100欧元

时间规则:

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

日期规则:

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

用户规则:

  • Rule_#3你的名字是圣诞老人=>你得到2欧元的折扣

规则也可以组合(排除/包括):

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

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

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

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