Оптимистическая блокировка в Rails, не позволяющая изменять запись в консоли - PullRequest
0 голосов
/ 29 мая 2019

Я работаю над блокировкой базы данных, чтобы обеспечить безопасные транзакции данных при многопользовательском участии.

Машина установлена ​​с Passenger.

После того, как я добавил 'lock_version' (целое число), запись больше не может быть изменена через консоль.

Скажем,

lesson = Lesson.find(1)
lesson.start_time = Time.now
lesson.save 

=> then, ActiveRecord::StaleObjectError: Attempted to update a stale object: Lesson

Но, с очень редким шансом, колонка сохраняется, что меня сильно смущает.

Версия rails - 4.2.8

Большое спасибо за много мыслей ..!

Лучший

1 Ответ

0 голосов
/ 30 мая 2019

Так что получается, что для использования Оптимистической блокировки, я должен был добавить lock_version с начальным значением 0 (целое число), а не NULL.Хотя в консоли Rails запись показывает 0, но в базе данных она фактически была нулевой.!

...