根据规则计算价格(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或库。 你有很多工作要做。
- 我可以使用RSpec来模拟stdin / stdout来测试控制台的读写吗?
- IRb:如何使用预加载的类启动交互式ruby会话
- 在网站中嵌入PDF,允许用户修改PDF中的可编辑字段,然后保存回服务器
- Rails 3,将模型中的字段从字符串更改为日期时间类型
- Rest-Client获取authenticity_token以创建新记录
- 在ruby中将字符串转换为变量名
- 这对于sinatra + angular.js +自定义提供程序的Oauth2工作流的概念是否正确?
- 可以在Visual Studio 2008中添加Ruby语法高亮显示吗?
- 错误:缺少表“self”的FROM子句条目(Rails 4 Active Record事务,postgresql 9.4))