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
|
||||
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue