instance method update

Ruby on Rails edge

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.11.3 v5.0.7.2 v5.1.7 v5.2.8.1 v6.0.6.1 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3.2 v8.0.5.1 v8.1.3.1 edge

Signature

update(arel_or_sql, name = nil, binds = [])

Executes the update statement and returns the number of rows affected.

Parameters

arel_or_sql req
name opt = nil
binds opt = []
Source
# File activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 313
      def update(arel_or_sql, name = nil, binds = [])
        if binds.any?
          ActiveRecord.deprecator.warn(<<~MSG.squish)
            Passing `binds` as a positional argument to `update` is
            deprecated and will be removed in Rails 9.0. Use
            `Arel.sql(sql_with_placeholders, *binds)` to carry bind values
            inside the arel node instead —
            `update(sql, name, binds)` becomes
            `update(Arel.sql(sql, *binds), name)`.
          MSG
        end

        intent = QueryIntent.new(adapter: self, arel: arel_or_sql, name: name, binds: binds)

        intent.execute!
        intent.affected_rows
      end

Defined in activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb line 313 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::ConnectionAdapters::DatabaseStatements

Type at least 2 characters to search.

Use the arrow keys to navigate results, Enter to open one, Escape to close.

Keyboard shortcuts

/
Focus search
⌘K / Ctrl-K
Command palette
?
This help
Esc
Close