一次只能允许一个用户编辑内容

问题描述

| 例如,如果您要编辑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似乎已经拥有了。