在DB中存储工作流(状态机)。什么是最好的方式?

时间:2011-09-28 16:38:06

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

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

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

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

非常感谢

1 个答案:

答案 0 :(得分:1)

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

假设您可以将工作流程定义存储在数据库中。类似的东西:

Account.new.extend_workflow(@user.account_workflows)

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

不是为了胆小的人,但可以在这里解决你的问题。