Я пытался найти в Интернете, но я мог найти хорошее объяснение.Что означает блокировка, оканчивающаяся восклицательным знаком на рубине?например, @student.lock! (кстати, я знаю, что означает lock в параллельном режиме)
@student.lock!
lock
Перейдите на сайт Ruby on Rails .Нажмите на ссылку " API " вверху.Типа "замок!"в поле поиска.Нажмите первый результат .
lock! (Lock = true) Получитьблокировка строки в этой записи.Перезагрузка записи для получения запрошенной блокировки.Передайте предложение блокировки SQL, чтобы добавить конец оператора SELECT, или передайте true для «FOR UPDATE» (по умолчанию исключительная блокировка строки).Возвращает заблокированную запись.
Получитьблокировка строки в этой записи.Перезагрузка записи для получения запрошенной блокировки.Передайте предложение блокировки SQL, чтобы добавить конец оператора SELECT, или передайте true для «FOR UPDATE» (по умолчанию исключительная блокировка строки).Возвращает заблокированную запись.
Если вам неясно, что такое блокировка строки, первая половина этой статьи - хорошее место для начала.TL; DR заключается в том, что блокировка строки не позволяет другому пользователю базы данных (который может быть другим подключением из того же приложения) изменять строку, которую вы изменяете или собираетесь изменить.