【问题标题】:Storing workflows (state machines) in the DB. What's the best way?在数据库中存储工作流(状态机)。最好的方法是什么?
【发布时间】:2011-09-28 16:38:06
【问题描述】:

我在 RoR 模型(用户)中使用 workflow gem (htts://rubygems.org/gems/workflow) 来建模一个简单的状态机(实际上是许多具有相同根的工作流)。

状态机是在模型中硬编码,但我需要一种方法来允许管理员自定义工作流程。 所以,我认为,我必须找到一种解决方案将所有工作流(状态机)存储到数据库

你知道一些 lib 或 gems 吗? (我见过很多状态机 gem,但它们不管理存储在表中的工作流)

非常感谢

【问题讨论】:

    标签: ruby-on-rails ruby state-machine


    【解决方案1】:

    不知道任何宝石...但是,您可以使用元编程来加载您的工作流程的功能。

    假设您可以将工作流定义存储在数据库中。比如:

    Account.new.extend_workflow(@user.account_workflows)
    

    #extend_workflow 和 account_workflows 完全由您自定义并由您编写...这样,您的帐户可以拥有自定义状态机定义和规则集。

    不适合胆小的人,但可以在这里解决您的问题。

    【讨论】:

    • 感谢您的提示,但我对元编程知之甚少。你可以再详细一点吗 ?按照您所说的方式,我可以使用 gem 工作流程吗? (我不想重写状态机的工作方式)
    • 您不需要重写 gem --- 您将在运行时使用 gem。这是高级的东西。
    猜你喜欢
    • 2013-11-19
    • 2010-09-12
    • 1970-01-01
    • 2019-02-24
    • 2020-04-08
    • 2015-03-20
    • 2010-09-10
    • 2010-09-24
    • 2011-06-07
    相关资源
    最近更新 更多