instance method
_update_row
Ruby on Rails edge
Since v5.1.7 Private — implementation detail, not part of the public APISignature
_update_row(attribute_names, attempted_action = "update")
No documentation comment.
Parameters
-
attribute_namesreq -
attempted_actionopt = "update"
Source
# File activerecord/lib/active_record/persistence.rb, line 895
def _update_row(attribute_names, attempted_action = "update")
returning_columns = self.class.with_connection do |c|
if c.supports_update_returning?
self.class._returning_columns_for_update(c)
else
[]
end
end
if returning_columns.present?
result = self.class._update_record_with_result(
attributes_with_values(attribute_names),
_query_constraints_hash,
returning_columns
)
returning_values = result.rows.first
returning_columns.zip(returning_values).each do |column, value|
_write_attribute(column, value)
end if returning_values.present?
result.affected_rows
else
result = self.class._update_record(
attributes_with_values(attribute_names),
_query_constraints_hash,
)
result
end
end
Defined in activerecord/lib/active_record/persistence.rb line 895
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Persistence