class ActiveRecord::Relation
Public Instance Methods
build_join_query(manager, buckets, join_type, aliases)
click to toggle source
# File lib/praxis/extensions/attribute_filtering/active_record_patches/5x.rb, line 17 def build_join_query(manager, buckets, join_type, aliases) buckets.default = [] association_joins = buckets[:association_join] stashed_joins = buckets[:stashed_join] join_nodes = buckets[:join_node].uniq string_joins = buckets[:string_join].map(&:strip).uniq join_list = join_nodes + convert_join_strings_to_ast(string_joins) alias_tracker = alias_tracker(join_list, aliases) # Praxis: inject references into the join dependency join_dependency = ActiveRecord::Associations::JoinDependency.new( klass, table, association_joins, references: references_values ) joins = join_dependency.join_constraints(stashed_joins, join_type, alias_tracker) joins.each { |join| manager.from(join) } manager.join_sources.concat(join_list) alias_tracker.aliases end
construct_join_dependency()
click to toggle source
# File lib/praxis/extensions/attribute_filtering/active_record_patches/5x.rb, line 9 def construct_join_dependency including = eager_load_values + includes_values # Praxis: inject references into the join dependency ActiveRecord::Associations::JoinDependency.new( klass, table, including, references: references_values ) end