109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
# File 'lib/relation.rb', line 109
def load_includes(relation)
includes_params.each do |param|
next unless relation.klass.has_association?(param)
puts "LOADING #{param}"
assoc = klass.assoc_options[param]
f_k = assoc.foreign_key
p_k = assoc.primary_key
includes_table = assoc.table_name.to_s
in_ids = relation.collection.map(&:id).join(', ')
has_many = assoc.class == HasManyOptions
results = Puffs::DBConnection.execute(" SELECT\n \#{includes_table}.*\n FROM\n \#{includes_table}\n WHERE\n \#{includes_table}.\#{has_many ? f_k : p_k}\n IN\n (\#{in_ids});\n SQL\n included = assoc.model_class.parse_all(results)\n SQLRelation.build_association(relation, included, param)\n end\n\n relation\nend\n")
|