Spec-Zone.ru › Ruby on Rails 4.1

модуль ActiveRecord::AttributeMethods::Read::ClassMethods

Открытые методы экземпляров

cache_attribute?(attr_name) Показать исходный код

Возвращает true если предоставленное свойство кэшируется.

# File activerecord/lib/active_record/attribute_methods/read.rb, line 61
def cache_attribute?(attr_name)
  cached_attributes.include?(attr_name)
end
cache_attributes(*attribute_names) Показать исходный код

cache_attributes позволяет объявить, какие значения преобразованных свойств должны кэшироваться. Обычно кэширование эффективно только для свойств с дорогостоящими методами преобразования, например, для столбцов, связанных со временем (например, created_at, updated_at).

# File activerecord/lib/active_record/attribute_methods/read.rb, line 50
def cache_attributes(*attribute_names)
  cached_attributes.merge attribute_names.map { |attr| attr.to_s }
end
cached_attributes() Показать исходный код

Возвращает кэшированные свойства. По умолчанию кэшируются столбцы, связанные со временем, с типом данных :datetime, :timestamp, :time, :date.

# File activerecord/lib/active_record/attribute_methods/read.rb, line 56
def cached_attributes
  @cached_attributes ||= columns.select { |c| cacheable_column?(c) }.map { |col| col.name }.to_set
end

Защищенные методы экземпляров

define_method_attribute(name) Показать исходный код
# File activerecord/lib/active_record/attribute_methods/read.rb, line 68
def define_method_attribute(name)
  method = ReaderMethodCache[name]
  generated_attribute_methods.module_eval { define_method name, method }
end

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

Spec-Zone.ru

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