【发布时间】:2015-05-29 11:28:22
【问题描述】:
我有以下情况-
我有Company 和Incident。
Company 提供许多服务 (Service),因此 - has_and_belongs_to_many :services。
Incident 需要一些服务 (Service),因此 - has_and_belongs_to_many :services
现在,对于给定的事件,我需要找到所有提供我需要的服务的公司。我希望使用规则引擎来执行此操作,因为我有很多更复杂的条件要申请来选择合适的公司。
我研究了这个名为 - Wongi-engine (github.com/ulfurinn/wongi-engine) 的 gem,但是我很难把它包起来并编写规则。
你能给我一些建议吗?谢谢!
我可以想出以下facts:
engine << [ "CompanyA", "offers", "serviceA" ]
engine << [ "CompanyB", "offers", "serviceB" ]
engine << [ "CompanyA", "offers", "serviceB" ]
engine << [ "CompanyB", "offers", "serviceC" ]
engine << [ "IncidentA", "requires", "serviceC" ]
engine << [ "IncidentA", "requires", "serviceA" ]
编辑: 另外,一旦我编写了这些规则,如何使用 Rails 模型代替这些字符串?在 Ruby on Rails 应用程序的上下文中将事实加载到引擎中是否有任何最佳实践?
我的用例是,用户选择一个事件并询问可以为该事件提供服务的公司。我需要向规则引擎询问可以做到这一点的公司列表:)
【问题讨论】:
标签: ruby-on-rails ruby rules rule-engine