Spec-Zone.ru › Ruby on Rails 6.0

модуль ActiveRecord::Locking::Optimistic::ClassMethods

Константы

DEFAULT_LOCKING_COLUMN

Открытые методы экземпляров

locking_column() Показать исходный код
# File activerecord/lib/active_record/locking/optimistic.rb, line 141
def locking_column
  @locking_column = DEFAULT_LOCKING_COLUMN unless defined?(@locking_column)
  @locking_column
end

Столбец версии, используемый для оптимистической блокировки. По умолчанию lock_version.

locking_column=(value) Показать исходный код
# File activerecord/lib/active_record/locking/optimistic.rb, line 135
def locking_column=(value)
  reload_schema_from_cache
  @locking_column = value.to_s
end

Установить столбец для использования в оптимистической блокировке. По умолчанию lock_version.

locking_enabled?() Показать исходный код
# File activerecord/lib/active_record/locking/optimistic.rb, line 130
def locking_enabled?
  lock_optimistically && columns_hash[locking_column]
end

Возвращает true, если флаг lock_optimistically установлен в значение true (по умолчанию) и таблица включает столбец locking_column (по умолчанию lock_version).

reset_locking_column() Показать исходный код
# File activerecord/lib/active_record/locking/optimistic.rb, line 147
def reset_locking_column
  self.locking_column = DEFAULT_LOCKING_COLUMN
end

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

update_counters(id, counters) Показать исходный код
# File activerecord/lib/active_record/locking/optimistic.rb, line 153
def update_counters(id, counters)
  counters = counters.merge(locking_column => 1) if locking_enabled?
  super
end

Убедитесь, что столбец версии блокировки обновляется при обновлении счетчиков.

Вызывается метод суперкласса

© 2004–2019 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API