method
to_h
v5.0.0.1 -
Show latest stable
- Class:
ActiveRecord::Relation::WhereClause
to_h(table_name = nil)public
No documentation available.
# File activerecord/lib/active_record/relation/where_clause.rb, line 47
def to_h(table_name = nil)
equalities = predicates.grep(Arel::Nodes::Equality)
if table_name
equalities = equalities.select do |node|
node.left.relation.name == table_name
end
end
binds = self.binds.map { |attr| [attr.name, attr.value] }.to_h
equalities.map { |node|
name = node.left.name
[name, binds.fetch(name.to_s) {
case node.right
when Array then node.right.map(&:val)
when Arel::Nodes::Casted, Arel::Nodes::Quoted
node.right.val
end
}]
}.to_h
end