方法
- C
- D
- E
- N
- Q
- U
属性
[RW] | query_cache |
类公共方法
dirties_query_cache(base, *method_names) 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 20 def dirties_query_cache(base, *method_names) method_names.each do |method_name| base.class_eval <<-end_code, __FILE__, __LINE__ + 1 def #{method_name}(...) if pool.dirties_query_cache ActiveRecord::Base.clear_query_caches_for_current_thread end super end end_code end end
new(*) 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 196 def initialize(*) super @query_cache = nil end
实例公共方法
cache(&block) 链接
在块内启用查询缓存。
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 206 def cache(&block) pool.enable_query_cache(&block) end
clear_query_cache() 链接
清除查询缓存。
你可能希望明确调用此方法的一个原因是在请求数据库随机化结果的查询之间。否则缓存将看到相同的 SQL 查询并重复返回相同的结果,从而默默地破坏你期望的随机性。
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 232 def clear_query_cache pool.clear_query_cache end
disable_query_cache!() 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 222 def disable_query_cache! pool.disable_query_cache! end
enable_query_cache!() 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 210 def enable_query_cache! pool.enable_query_cache! end
query_cache_enabled() 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 201 def query_cache_enabled @query_cache&.enabled? end
uncached(dirties: true, &block) 链接
在块内禁用查询缓存。
将 dirties: false
设置为防止所有连接上的查询缓存被写入操作清除。(默认情况下,写入操作会使所有连接的查询缓存失效,以防它们是缓存现在已过时的副本。)
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 218 def uncached(dirties: true, &block) pool.disable_query_cache(dirties: dirties, &block) end