我需要一个普通用户可以编辑模型的系统,但编辑实际上只有在管理员批准后才会发生。我发现了一颗宝石,叫做纸迹 https://github.com/airblade/paper_trail它确实有模型版本控制,但不具体支持我想要做的事情。我想知道其他人是如何处理这个问题的。我应该补充一点,我还希望用户能够同时编辑一些关联。它们并不是很复杂,例如一个是别名。
更复杂的部分可能是多个用户编辑同一模型并尝试进行某种合并的情况。
一种方法是通过版本批准进行版本控制。
每次编辑都会创建模型对象及其关联的新版本。在任何时候,任何模型对象都只有一个“当前”版本(及其在数据库中的表示形式)。
如果两个用户提交两个单独的编辑,则会创建两个“待处理”版本。
管理员可以通过将当前版本移动到新的“待处理”版本来批准编辑。合并也可以完成,但这可能是非常特定于领域的,并且可能导致冲突,因此保留单独的版本无论如何都是明智的。
有几种方法可以实现这一点,最好的方法取决于情况的动态。
我建议您了解 Git 的工作原理,然后尝试对您的系统进行建模。某种指向 HEAD 模型对象的指针,具有修订历史记录以及将 HEAD 移动到不同修订的能力。合并也可以像 Git 一样工作。
希望有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)