method
reader_method
v6.1.7.7 -
Show latest stable
- Class:
ActiveRecord::Aggregations::ClassMethods
reader_method(name, class_name, mapping, allow_nil, constructor)private
No documentation available.
# File activerecord/lib/active_record/aggregations.rb, line 245
def reader_method(name, class_name, mapping, allow_nil, constructor)
define_method(name) do
if @aggregation_cache[name].nil? && (!allow_nil || mapping.any? { |key, _| !read_attribute(key).nil? })
attrs = mapping.collect { |key, _| read_attribute(key) }
object = constructor.respond_to?(:call) ?
constructor.call(*attrs) :
class_name.constantize.send(constructor, *attrs)
@aggregation_cache[name] = object
end
@aggregation_cache[name]
end
end