如何解决一次只能允许一个用户编辑内容
| 例如,如果您要编辑client-site.com/pages/5,则可以转到admin-site.com/pages/5/edit。我只想让一位管理员一次访问admin-site.com/pages/5/edit。 我打算做的是在数据库中创建\“ editor_id \”和\“ editing_rights_expiration_time \”列,并使用JavaScript /服务器端逻辑对其进行更新。有没有更好的方法来实现此功能? 我正在使用Rails 3。解决方法
我怀疑更好的方法是使用乐观锁定:
http://railscasts.com/episodes/59-optimistic-locking
, 您可能需要考虑一种乐观的锁定策略,因此,请尽可能多的用户编辑页面。但是,当用户尝试保存数据时,请检查令牌是否已更改并拒绝编辑。例如:
用户A开始编辑该项目,并保留最后修改的时间戳记作为令牌
用户B开始编辑该项目,并且还保留了上次修改的时间戳作为令牌
用户B保存他们的更改。上次修改的时间戳未更改,因此保存成功
用户A保存他们的更改。上次修改的时间戳已更改,因此保存被拒绝。可以为用户提供解决冲突的机会(如果存在)。
哦,就像@Andy Waite(+1)提到的一样,Rails似乎已经拥有了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。