class ActiveRecord::Relation
Attributes
rcache_value[RW]
Private Instance Methods
exec_queries()
click to toggle source
# File lib/rcache/relation.rb, line 6 def exec_queries return @records if loaded? default_scoped = with_default_scope arel.rcache_value = rcache_value if default_scoped.equal?(self) @records = if @readonly_value.nil? && !@klass.locking_enabled? eager_loading? ? find_with_associations : @klass.find_by_sql(arel, @bind_values) else IdentityMap.without do eager_loading? ? find_with_associations : @klass.find_by_sql(arel, @bind_values) end end preload = @preload_values preload += @includes_values unless eager_loading? preload.each do |associations| # this line distincts only ActiveRecord::Associations::Preloader.new(@records, associations, :rcache_value => rcache_value).run end # @readonly_value is true only if set explicitly. @implicit_readonly is true if there # are JOINS and no explicit SELECT. readonly = @readonly_value.nil? ? @implicit_readonly : @readonly_value @records.each { |record| record.readonly! } if readonly else @records = default_scoped.rcache(rcache_value).to_a end @loaded = true @records end