class Array
Public Instance Methods
prefetch(args)
click to toggle source
# File lib/raspy.rb, line 244 def prefetch(args) return if args.keys.length == 0 args.each_pair do |name, details| raise Raspy::Error.new("Incomplete relation details for '#{name}'") unless \ details.is_a?(Hash) \ && details[:type].present? case details[:type] when :belongs_to, "belongs_to" Raspy.preload_belongs_to( list: self, name: name, association_klass: details[:klass], foreign_key: details[:foreign_key], inner_associations: details[:associations], additional_selects: details[:additional_selects] || [], additional_joins: details[:additional_joins] || [], association_condition: details[:association_condition] ) when :polymorphic_belongs_to, "polymorphic_belongs_to" Raspy.preload_polymorphic_belongs_to( list: self, name: name, polymorphic_key_field: details[:polymorphic_key_field], polymorphic_type_field: details[:polymorphic_type_field], polymorphic_type_map: details[:polymorphic_type_map] ) when :has_one, "has_one" Raspy.preload_has_one( list: self, name: name, association_klass: details[:klass], foreign_key: details[:foreign_key], order_type: details[:order_type], order_field: details[:order_field], inner_associations: details[:associations], association_condition: details[:association_condition], reverse_association: details[:reverse_association] ) when :has_many, "has_many" Raspy.preload_has_many( list: self, name: name, association_klass: details[:klass], foreign_key: details[:foreign_key], inner_associations: details[:associations], association_condition: details[:association_condition], reverse_association: details[:reverse_association] ) when :has_and_belongs_to_many, "has_and_belongs_to_many" Raspy.preload_habtm( list: self, name: name, association_klass: details[:klass], foreign_key: details[:foreign_key], association_foreign_key: details[:association_foreign_key], inner_associations: details[:associations], join_table: details[:join_table], association_condition: details[:association_condition] ) end end end