代码之家  ›  专栏  ›  技术社区  ›  razenha

ruby on rails的动态业务规则引擎

  •  3
  • razenha  · 技术社区  · 14 年前

    我有一个需要“动态业务规则”引擎的应用程序。有些业务规则变化非常频繁。其中一些人申请了有限的商业账户。例如:我的客户有一个流程,他们根据商店的规模、销售人员的数量、产品的数量、位置等来确定商店的质量,但是他管理不同的帐户,每个帐户为每个属性赋予不同的“权重”。

    当做,

    鲁本

    1 回复  |  直到 14 年前
        1
  •  6
  •   spaaarky21 codeMagic    13 年前

    如果你确定你需要的是一个规则引擎,你需要找到一个可以在Ruby中使用的规则引擎。快速的谷歌搜索带来了ROOLS(http://ROLL.RuyForg.Org/Ruby)和Ruby规则(http://xrclis.CodHaul.org/Studio/Ruby规则)。但我不确定这两个项目的状况。将JRuby与Drools一起使用可能是您最好的选择,但是我还是Java开发人员和Drools的拥护者。:)

    如果不知道所有细节,就很难说应该如何实施。这还取决于您希望如何更新规则。一种方法是写一组类似的规则:“如果一个商店有超过50个销售人员,商店没有更新它的重量来反映这一点,那么更新商店的重量。”但是,在某种程度上,你可以将它与硬编码进行比较。

    一个更好的方法可能是创建权重对象,其中包含应用权重所需满足的条件。然后,你可以编写一个在权重和存储上都匹配的规则:“如果一个商店与权重的标准相匹配,而且商店还没有分配给它的权重,那么就将权重添加到商店中。”然后,商家可以创建并更新权重,可能是在Web前端数据库中,而不是维护规则。