2013-12-16 50 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的定位是持久性/可修改性,而不是像常規口譯員那樣的短暫性/表現性」,其目的在於長期運行的流程。雖然工作流更像是有限狀態機。 –