Update the StatementCache documentation

This commit is contained in:
Rafael Mendonça França 2014-11-27 14:40:19 -02:00
parent 07f4bd5b60
commit 8fc7eb5f21
1 changed files with 15 additions and 4 deletions

View File

@ -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: