我想要一个gem或解决方案,以便如果用户导航到另一个用户已在编辑的记录的编辑视图,则第二个用户有一个简单的闪光警告,其他人已经在编辑此记录。我不需要对记录进行任何乐观或悲观的锁定。我正在寻找已经有解决方案的宝石。如果不是我的思路:
我看到的潜在问题:
任何示例或正确方向上的点都会很棒。
答案 0 :(得分:0)
您可以生成已加载对象的md5哈希值(基于所有可编辑属性)和数据库中的对象并进行比较。如果它们不相同,则在将对象加载到内存后,有人更改了对象。
Digest::SHA2.hexdigest(<string made of all your editable attributes>)
答案 1 :(得分:0)
我会使用redis。
将编辑对象的类型和ID(“post:23322”)标记为键,值将是当前正在编辑文档的用户ID的数组(redis集)。 在密钥上设置一个到期TTL,以确保它不会过时。