Spec-Zone.ru › Ruby on Rails 4.1

класс ActiveRecord::StatementCache

Родитель:
Объект

Кэш запросов используется для кэширования одного запроса, чтобы избежать повторного создания абстрактного синтаксического дерева. Инициализация кэша выполняется путём передачи запроса в блоке инициализации:

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

Кэшированный запрос выполняется с помощью метода execute:

cache.execute

Связь, возвращённая блоком, кэшируется, и для каждого вызова execute кэшированная связь дублируется. База данных запрашивается, когда для связи вызывается метод to_a.

Публичные методы класса

new() { || ... } Показать исходный код
# File activerecord/lib/active_record/statement_cache.rb, line 17
def initialize
  @relation = yield
  raise ArgumentError.new("Statement cannot be nil") if @relation.nil?
end

Публичные методы экземпляра

execute() Показать исходный код
# File activerecord/lib/active_record/statement_cache.rb, line 22
def execute
  @relation.dup.to_a
end

© 2004–2016 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API