【发布时间】:2014-02-11 16:18:33
【问题描述】:
我正在尝试弄清楚如何在 Rails 中实现动态审批系统。场景是这样的:我有一个模型对象(一个文档),当创建它时,用户可以分配一个批准流。该文件可以由用户填写和提交。然后文档在“批准”之前经过批准流程。
例如,假设我创建了一个“请假请求”文档。作为用户,我可以声称请假请求必须得到我的直线经理和 HR 人员的批准,然后才能处于“已批准”状态。
我已经探索过使用许多状态机 gem 和 CanCan 来获得权限,但我无法完全理解如何动态创建这些工作流。我考虑过序列化数据库中的工作流,但这意味着每次我想确定等待批准的文档的文档审批者列表时,我都必须反序列化处于“等待批准”状态的文档列表中的每个工作流。
有没有人知道如何解决这个问题?
【问题讨论】:
-
你能解释一下你所说的“动态”是什么意思吗?您是说每个文档可能需要不同类型的用户批准,这是在创建文档时决定的?
-
您好,感谢您的回复。所以我所说的动态的意思是,每个文档可能不仅有不同的批准者,而且通过这些批准者“批准”的路径也不同。因此,A 类文件可能必须由“HR 人员”批准,而 B 类文件可能必须由“HR 人员”和“用户直线经理”批准。 C 类文档可能有“HR Manager”然后“line manager”的审批路径。更复杂的 D 类文档可能有“HR Manager”和“Line Manager”然后“CEO”等审批路径。
标签: ruby-on-rails dynamic workflow cancan acts-as-state-machine