Проверка согласованности Rails при обновлении записи - PullRequest
1 голос
/ 01 сентября 2011

Я запусту систему, и мы выбрали рельсы, потому что она покрывает все наши потребности.

Нам нужна согласованность обновлений базы данных в некоторой точке системы, и я помню, что я нашел в какой-то официальной документации, что рельсыя могу автоматически проверять версии записей, однако я много гуглил и не могу снова найти эти страницы.

Проблема в следующем:

  • Предположим, что существуетзапись в таблицу базы данных.Допустим, «учетная запись».
  • Предположим, что пользователь по имени Боб находит эту запись и начинает ее редактировать.Предположим, что пользователь меняет свое имя с «Incomings» на «Sales».
  • Предположим, что в то время, когда Боб редактирует запись, другой пользователь по имени Сьюзен находит точно такую ​​же запись и начинает ее редактировать.Допустим, Сьюзен хочет изменить имя учетной записи с «Поступления» на «Плата за услуги».
  • Затем Боб сохраняет свои изменения.
  • После того, как Боб сохраняет свои изменения, Сьюзан пытаетсясохраните ее изменения.

На этом этапе система должна сообщить Сьюзен, что другой пользователь изменил запись, и ее изменения не могут быть сохранены.

Я могу выполнить эту проверку вручную,но я помню, что это может быть сделано Rails автоматически.Я помню, что единственным требованием в таблицах базы данных, где требуется эта проверка, является добавление столбца «версия», и Rails позаботится об этом.На самом деле я не помню, должен ли столбец называться «версия» или что-то еще, но дело в том, что только функция столбцов включает эту функцию.

Проблема в том, что я больше не могу найти эту документацию.Если бы кто-нибудь мог дать мне ссылку на эту документацию, я был бы благодарен, потому что все, что я помню, - это требование колонки «версия», и я не хочу знать, о каких других вещах я должен заботиться.

Заранее спасибо.

1 Ответ

1 голос
/ 07 сентября 2011

Ну, я нашел ответ на свой вопрос.

Документация по API и ее можно найти здесь:

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

Документация очень короткая! И я ошибся в названии нужного столбца. Правильное имя столбца - «lock_version».

Спасибо всем, кто хотя бы прочитал мой вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...