instance method lock!

Ruby on Rails 6.1.7.10

Since v2.2.3

Available in: v2.2.3 v2.3.18 v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

lock!(lock = true)

Obtain a row lock on this record. Reloads the record to obtain the requested lock. Pass an SQL locking clause to append the end of the SELECT statement or pass true for “FOR UPDATE” (the default, an exclusive row lock). Returns the locked record.

Parameters

lock opt = true
Source
# File activerecord/lib/active_record/locking/pessimistic.rb, line 67
      def lock!(lock = true)
        if persisted?
          if has_changes_to_save?
            raise(<<-MSG.squish)
              Locking a record with unpersisted changes is not supported. Use
              `save` to persist the changes, or `reload` to discard them
              explicitly.
            MSG
          end

          reload(lock: lock)
        end
        self
      end

Defined in activerecord/lib/active_record/locking/pessimistic.rb line 67 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::Locking::Pessimistic

Type at least 2 characters to search.

↑↓ navigate · open · esc close