mirror of https://github.com/rails/rails
Update the StatementCache documentation
This commit is contained in:
parent
07f4bd5b60
commit
8fc7eb5f21
|
@ -1,18 +1,29 @@
|
|||
module ActiveRecord
|
||||
|
||||
# Statement cache is used to cache a single statement in order to avoid creating the AST again.
|
||||
# Initializing the cache is done by passing the statement in the initialization block:
|
||||
# Initializing the cache is done by passing the statement in the create block:
|
||||
#
|
||||
# cache = ActiveRecord::StatementCache.new do
|
||||
# Book.where(name: "my book").limit(100)
|
||||
# cache = StatementCache.create(Book.connection) do |params|
|
||||
# Book.where(name: "my book").where("author_id > 3")
|
||||
# end
|
||||
#
|
||||
# The cached statement is executed by using the +execute+ method:
|
||||
#
|
||||
# cache.execute
|
||||
# cache.execute([], Book, Book.connection)
|
||||
#
|
||||
# The relation returned by the block is cached, and for each +execute+ call the cached relation gets duped.
|
||||
# Database is queried when +to_a+ is called on the relation.
|
||||
#
|
||||
# If you want to cache the statement without the values you can use the +bind+ method of the
|
||||
# block parameter.
|
||||
#
|
||||
# cache = StatementCache.create(Book.connection) do |params|
|
||||
# Book.where(name: params.bind)
|
||||
# end
|
||||
#
|
||||
# And pass the bind values as the first argument of +execute+ call.
|
||||
#
|
||||
# cache.execute(["my book"], Book, Book.connection)
|
||||
class StatementCache # :nodoc:
|
||||
class Substitute; end # :nodoc:
|
||||
|
||||
|
|
Loading…
Reference in New Issue