Type:
Class

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:

cache = ActiveRecord::StatementCache.new do
  Book.where(name: "my book").limit(100)
end

The cached statement is executed by using the execute method:

cache.execute

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.

new
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::StatementCache

new() Class Public methods

2025-01-10 15:47:30
execute
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::StatementCache

execute() Instance Public methods

2025-01-10 15:47:30