where_values_hash(relation_table_name = table_name)
public
# File activerecord/lib/active_record/relation.rb, line 558
def where_values_hash(relation_table_name = table_name)
equalities = where_values.grep(Arel::Nodes::Equality).find_all { |node|
node.left.relation.name == relation_table_name
}
binds = Hash[bind_values.find_all(&:first).map { |column, v| [column.name, v] }]
Hash[equalities.map { |where|
name = where.left.name
[name, binds.fetch(name.to_s) {
case where.right
when Array then where.right.map(&:val)
when Arel::Nodes::Casted
where.right.val
end
}]
}]
end