diff options
Diffstat (limited to 'lib/arel/visitors/to_sql.rb')
-rw-r--r-- | lib/arel/visitors/to_sql.rb | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb index 9cda88454b..5604b9de04 100644 --- a/lib/arel/visitors/to_sql.rb +++ b/lib/arel/visitors/to_sql.rb @@ -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 |