1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

fix bind values in insert statements

This commit is contained in:
Aaron Patterson 2014-04-09 15:18:43 -07:00
parent f81965509d
commit e33c568f5e
2 changed files with 12 additions and 8 deletions

View file

@ -55,18 +55,18 @@ module Arel
collector = visit o.relation, collector
unless o.values.empty?
collector << "SET "
collector << " SET "
collector = inject_join o.values, collector, ', '
end
unless o.wheres.empty?
collector << "SET "
collector << " WHERE "
collector = inject_join o.wheres, collector, ' AND '
end
unless o.orders.empty?
collector << "ORDER BY "
collector = inject_join o.wheres, collector, ', '
collector << " ORDER BY "
collector = inject_join o.orders, collector, ', '
end
if o.limit

View file

@ -178,13 +178,17 @@ module Arel
def visit_Arel_Nodes_Values o, collector
collector << "VALUES ("
collector << o.expressions.zip(o.columns).map { |value, attr|
len = o.expressions.length - 1
o.expressions.zip(o.columns).each_with_index { |(value, attr), i|
if Nodes::SqlLiteral === value
value
collector = visit value, collector
else
quote(value, attr && column_for(attr))
collector << quote(value, attr && column_for(attr)).to_s
end
}.join(', ')
unless i == len
collector << ', '
end
}
collector << ")"
end