基于规则计算价格(Ruby规则引擎)

基于规则计算价格(Ruby规则引擎),ruby,algorithm,Ruby,Algorithm,有两个规则引擎,如Treetop或Wongi::Engine,但似乎都不适合我的个人资料 我想建立一个灵活的系统,可以计算价格。例如: 雪橇的底价是100欧元 产品规则: 规则0雪橇的价格为100欧元 时间规则: 规则1你在23:00后买了雪橇=>你可以得到10欧元的折扣 日期规则: 规则2你在圣诞节买的雪橇=>你可以得到10%的折扣10欧元 用户规则: 规则3你的名字是圣诞老人=>你可以得到2欧元的折扣 规则也可以组合起来排除/包括: =>最终价格是100-10-10-2=78。好吧,没有捷径

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

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

雪橇的底价是100欧元

产品规则:

规则0雪橇的价格为100欧元 时间规则:

规则1你在23:00后买了雪橇=>你可以得到10欧元的折扣 日期规则:

规则2你在圣诞节买的雪橇=>你可以得到10%的折扣10欧元 用户规则:

规则3你的名字是圣诞老人=>你可以得到2欧元的折扣 规则也可以组合起来排除/包括:


=>最终价格是100-10-10-2=78。好吧,没有捷径可以解决您的问题

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


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

请留下评论,为什么这个问题没有显示出努力/研究或没有用,以便我可以改进我的问题……你的问题如何显示出努力或研究?你没有代码,也没有解释为什么上面提到的两个gem不适合你的需要。这4条规则描述了逻辑,为什么需要发布ruby代码?我只是想让问题简单点。我试图找出如何将Wongi::Engine应用于我的问题。但对于这类问题来说,它似乎太复杂了。