提交 67da5909 编写于 作者: A Aaron Patterson

make our hash of klasses and ids actually have classes for keys

上级 7e91ad3f
......@@ -329,7 +329,7 @@ def preload_belongs_to_association(records, reflection, preload_options={})
if klass = record.send(polymorph_type)
klass_id = record.send(primary_key_name)
if klass_id
id_map = klasses_and_ids[klass] ||= {}
id_map = klasses_and_ids[klass.constantize] ||= {}
(id_map[klass_id.to_s] ||= []) << record
end
end
......@@ -340,16 +340,14 @@ def preload_belongs_to_association(records, reflection, preload_options={})
key && key.to_s
end
id_map.delete nil
klasses_and_ids[reflection.klass.name] = id_map unless id_map.empty?
klasses_and_ids[reflection.klass] = id_map unless id_map.empty?
end
klasses_and_ids.each do |klass_name, _id_map|
klass = klass_name.constantize
table = klass.arel_table
klasses_and_ids.each do |klass, _id_map|
table = klass.arel_table
primary_key = (reflection.options[:primary_key] || klass.primary_key).to_s
method = in_or_equal(_id_map.keys)
conditions = table[primary_key].send(*method)
method = in_or_equal(_id_map.keys)
conditions = table[primary_key].send(*method)
custom_conditions = append_conditions(reflection, preload_options)
conditions = custom_conditions.inject(conditions) do |ast, cond|
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册