class ActiveRecord::Relation::Merger
def merge_joins
def merge_joins return if values[:joins].blank? if other.klass == relation.klass relation.joins!(*values[:joins]) else joins_dependency, rest = values[:joins].partition do |join| case join when Hash, Symbol, Array true else false end end join_dependency = ActiveRecord::Associations::JoinDependency.new(other.klass, joins_dependency, []) relation.joins! rest @relation = relation.joins join_dependency end end