1

我将启动一个系统,我们选择了 rails,因为它涵盖了我们所有的需求。

我们需要在系统的某些点上保持数据库更新的一致性,我记得我在一些官方文档中发现 rails 可以自动检查记录的版本,但是我用谷歌搜索了很多,我再也找不到那些页面了。

问题如下:

  • 假设数据库的一张表中存在一条记录。比方说,一个“帐户”。
  • 假设名为 Bob 的用户找到了该记录并开始对其进行编辑。假设用户将其名称从“Incomings”更改为“Sales”。
  • 假设在 Bob 正在编辑记录时,另一个名为 Susan 的用户找到了完全相同的记录并开始对其进行编辑。假设 Susan 要将帐户名称从“Incomings”更改为“Service fee”。
  • 然后,Bob 保存他的更改。
  • Bob 保存他的更改后,Susan 尝试保存她的更改。

此时,系统应通知 Susan 另一个用户已更改记录,她的更改无法保存。

我可以手动进行此验证,但我记得这可以由 Rails 自动完成。我记得唯一需要验证的数据库表的要求是添加一个“版本”列,Rails 会处理这个问题。真的,我不记得该列是否必须称为“版本”或其他名称,但事实是只有一个列启用此功能。

问题是我再也找不到该文档了。如果有人可以向我提供该文档的链接,我将不胜感激,因为“版本”列的要求是我记得的全部内容,我不知道我必须注意哪些其他事情。

提前致谢。

4

1 回答 1

1

好吧,我已经找到了我自己问题的答案。

该文档位于 API 上,可在此处找到:

http://api.rubyonrails.org/classes/ActiveRecord/Locking/Optimistic.html

文档很短!而且我在所需列的名称上错了。列的正确名称是“lock_version”。

感谢所有至少阅读我的问题的人。

于 2011-09-07T15:01:18.893 回答