2013-12-16 51 views
0

在我们的rails应用程序中,某些model可能需要approval process。例如,对于purchasing order (PO),通常从提交PO开始,然后经理批准并且首席执行官批准PO可以发送给供应商。审批程序可能是预定义的。随着approval process,我们也想为每一个过渡记录数据:Rails:状态机是否足够用于审批流程?

1. who did it (use id), 
    2. when she/he did it (time stamp) 
    3. comment by approval person (usually text). 
    4. approval process can be attached to the model late on demand. 

有不少state machineruby gem那里(如state machine)。我们的问题是:状态机是否足以满足上述要求?

回答

1

我已经使用workflow宝石做类似的东西。

它有几个状态和转换事件从一个状态切换到另一个状态。您可以在转换事件中记录数据。

+0

非常有趣!有一个叫ruote的工作流程宝石。工作流程和ruote有什么区别? – user938363

+0

我们可以指定谁可以在流程定义中做什么?谁可以是一个用户或一组用户。什么是触发转换的事件。 – user938363

+0

我以前没有用过ruote。他们从他们的文件中宣称:“Ruote的定位是持久性/可修改性,而不是像常规口译员那样的短暂性/表现性”,其目的在于长期运行的流程。虽然工作流更像是有限状态机。 –