Method: ActiveRecord::InsertAll::Builder#touch_model_timestamps_unless

Defined in:
activerecord/lib/active_record/insert_all.rb

#touch_model_timestamps_unless(&block) ⇒ Object



279
280
281
282
283
284
285
286
287
# File 'activerecord/lib/active_record/insert_all.rb', line 279

def touch_model_timestamps_unless(&block)
  return "" unless update_duplicates? && record_timestamps?

  model.timestamp_attributes_for_update_in_model.filter_map do |column_name|
    if touch_timestamp_attribute?(column_name)
      "#{column_name}=(CASE WHEN (#{updatable_columns.map(&block).join(" AND ")}) THEN #{model.quoted_table_name}.#{column_name} ELSE #{connection.high_precision_current_timestamp} END),"
    end
  end.join
end