Methods
C
D
E
I
S
U
Attributes
[R] query_cache
[R] query_cache_enabled
Class Public methods
dirties_query_cache(base, *method_names)
    # File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 9
 9:         def dirties_query_cache(base, *method_names)
10:           method_names.each do |method_name|
11:             base.class_eval "def \#{method_name}(*)                         # def update_with_query_dirty(*args)\nclear_query_cache if @query_cache_enabled   #   clear_query_cache if @query_cache_enabled\nsuper                                       #   update_without_query_dirty(*args)\nend                                           # end\n", __FILE__, __LINE__ + 1
12:           end
13:         end
included(base)
   # File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 5
5:         def included(base)
6:           dirties_query_cache base, :insert, :update, :delete
7:         end
Instance Public methods
cache()

Enable the query cache within the block.

    # File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 25
25:       def cache
26:         old, @query_cache_enabled = @query_cache_enabled, true
27:         yield
28:       ensure
29:         clear_query_cache
30:         @query_cache_enabled = old
31:       end
clear_query_cache()

Clears the query cache.

One reason you may wish to call this method explicitly is between queries that ask the database to randomize results. Otherwise the cache would see the same SQL query and repeatedly return the same result each time, silently undermining the randomness you were expecting.

    # File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 55
55:       def clear_query_cache
56:         @query_cache.clear
57:       end
disable_query_cache!()
    # File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 37
37:       def disable_query_cache!
38:         @query_cache_enabled = false
39:       end
enable_query_cache!()
    # File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 33
33:       def enable_query_cache!
34:         @query_cache_enabled = true
35:       end
select_all(arel, name = nil, binds = [])
    # File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 59
59:       def select_all(arel, name = nil, binds = [])
60:         if @query_cache_enabled
61:           sql = to_sql(arel, binds)
62:           cache_sql(sql, binds) { super(sql, name, binds) }
63:         else
64:           super
65:         end
66:       end
uncached()

Disable the query cache within the block.

    # File activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 42
42:       def uncached
43:         old, @query_cache_enabled = @query_cache_enabled, false
44:         yield
45:       ensure
46:         @query_cache_enabled = old
47:       end