Sha256: 23f66eb11b63a9d1b77b288d1f53b2d7de5568807513ee19fab425c9f2f70aab
Contents?: true
Size: 994 Bytes
Versions: 1
Compression:
Stored size: 994 Bytes
Contents
require 'active_record/associations/preloader/association' module ActiveRecord::Turntable module ActiveRecordExt module AssociationPreloader extend ActiveSupport::Concern included do alias_method_chain :records_for, :turntable end def records_for_with_turntable(ids) returning_scope = records_for_without_turntable(ids) if should_use_shard_key? returning_scope = returning_scope.where(klass.turntable_shard_key => owners.map(&foreign_shard_key.to_sym).uniq) end returning_scope end private def foreign_shard_key options[:foreign_shard_key] || model.turntable_shard_key end def should_use_shard_key? sharded_by_same_key? || !!options[:foreign_shard_key] end def sharded_by_same_key? model.turntable_enabled? && klass.turntable_enabled? && model.turntable_shard_key == klass.turntable_shard_key end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activerecord-turntable-2.0.0.rc1 | lib/active_record/turntable/active_record_ext/association_preloader.rb |