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:
parent
f81965509d
commit
e33c568f5e
2 changed files with 12 additions and 8 deletions
|
@ -55,18 +55,18 @@ module Arel
|
||||||
collector = visit o.relation, collector
|
collector = visit o.relation, collector
|
||||||
|
|
||||||
unless o.values.empty?
|
unless o.values.empty?
|
||||||
collector << "SET "
|
collector << " SET "
|
||||||
collector = inject_join o.values, collector, ', '
|
collector = inject_join o.values, collector, ', '
|
||||||
end
|
end
|
||||||
|
|
||||||
unless o.wheres.empty?
|
unless o.wheres.empty?
|
||||||
collector << "SET "
|
collector << " WHERE "
|
||||||
collector = inject_join o.wheres, collector, ' AND '
|
collector = inject_join o.wheres, collector, ' AND '
|
||||||
end
|
end
|
||||||
|
|
||||||
unless o.orders.empty?
|
unless o.orders.empty?
|
||||||
collector << "ORDER BY "
|
collector << " ORDER BY "
|
||||||
collector = inject_join o.wheres, collector, ', '
|
collector = inject_join o.orders, collector, ', '
|
||||||
end
|
end
|
||||||
|
|
||||||
if o.limit
|
if o.limit
|
||||||
|
|
|
@ -178,13 +178,17 @@ module Arel
|
||||||
def visit_Arel_Nodes_Values o, collector
|
def visit_Arel_Nodes_Values o, collector
|
||||||
collector << "VALUES ("
|
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
|
if Nodes::SqlLiteral === value
|
||||||
value
|
collector = visit value, collector
|
||||||
else
|
else
|
||||||
quote(value, attr && column_for(attr))
|
collector << quote(value, attr && column_for(attr)).to_s
|
||||||
end
|
end
|
||||||
}.join(', ')
|
unless i == len
|
||||||
|
collector << ', '
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
collector << ")"
|
collector << ")"
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue