method
cache_sql
cache_sql(sql, name, binds)
private
Hide source
# File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 142 def cache_sql(sql, name, binds) key = binds.empty? ? sql : [sql, binds] result = nil hit = false @lock.synchronize do if (result = @query_cache.delete(key)) hit = true @query_cache[key] = result else result = @query_cache[key] = yield if @query_cache_max_size && @query_cache.size > @query_cache_max_size @query_cache.shift end end end if hit ActiveSupport::Notifications.instrument( "sql.active_record", cache_notification_info(sql, name, binds) ) end result.dup end