Sha256: 38d50a17a02e557c4243e72523939345cba55c9a738a9f9bffd6e25d71208eef
Contents?: true
Size: 781 Bytes
Versions: 2
Compression:
Stored size: 781 Bytes
Contents
class Graphiti::Sideload::BelongsTo < Graphiti::Sideload def type :belongs_to end def load_params(parents, query) query.to_hash.tap do |hash| hash[:filter] ||= {} hash[:filter][primary_key] = ids_for_parents(parents) end end def assign_each(parent, children) children.find { |c| c.send(primary_key) == parent.send(foreign_key) } end def ids_for_parents(parents) parent_ids = parents.map(&foreign_key) parent_ids.compact! parent_ids.uniq! parent_ids end def infer_foreign_key if polymorphic_child? parent.foreign_key else model = resource.model namespace = namespace_for(model) model_name = model.name.gsub("#{namespace}::", '') :"#{model_name.underscore}_id" end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
graphiti-1.0.alpha.1 | lib/graphiti/sideload/belongs_to.rb |
graphiti-rb-1.0.alpha.1 | lib/graphiti/sideload/belongs_to.rb |