gpt4 book ai didi

ruby-on-rails - 需要澄清 Ruby 状态机的使用

转载 作者:数据小太阳 更新时间:2023-10-29 08:12:06 25 4
gpt4 key购买 nike

我的问题是我有一个应用程序可以让用户定义工作流(状态、转换、事件等)并让我的应用程序知道它如何根据用户的工作流使用react(转换)。

我看过几个状态机 gem,比如 AASM ,我看到了如何使用 gem 来预定义状态机但是如果状态机需要更改,看起来我必须修改代码并重新部署。我一直在和我的同事争论我们如何能够/不能利用状态机 gem 来做我们想做的事情,但对我来说,它们似乎都定义了一个静态状态机,并且对该状态机的更改需要更改代码。

他的建议是动态修改 Ruby 类以匹配用户工作流的变化。我的想法是状态、转换、事件、守卫等是用户通过我们的 API 修改的持久对象。我们目前的思路似乎都不适用于 current Ruby state machines无需对这些 gem 进行重大修改。

作为示例解决方案,我一直关注的地方是 JIRA 以及如何动态定义项目的状态、转换和其他工作流属性。

最佳答案

当业务逻辑是预定义的时候应该使用状态机,否则你应该以不同的方式建模。如果您希望用户创建自己的工作流(例如状态、转换、事件),那么为状态、转换和事件创建单独的模型并在代码中定义它们之间的关系是有意义的。

然后你可以有多种类型的转换和事件,它们有不同的结果。如果您能详细描述您需要什么样的动态工作流,我可以告诉您更多信息 — 现在正在处理类似的项目,尽管我们还没有将事件和转换引入到工作流中

关于ruby-on-rails - 需要澄清 Ruby 状态机的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27769360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com