diff options
Diffstat (limited to 'lib/arel/insert_manager.rb')
-rw-r--r-- | lib/arel/insert_manager.rb | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/arel/insert_manager.rb b/lib/arel/insert_manager.rb index accabb4377..75e6299def 100644 --- a/lib/arel/insert_manager.rb +++ b/lib/arel/insert_manager.rb @@ -11,16 +11,23 @@ module Arel end def columns; @head.columns end - def values; @head.values end + def values= val; @head.values = val; end def insert fields return if fields.empty? - @head.relation ||= fields.first.first.relation + if String === fields + @head.values = SqlLiteral.new(fields) + else + @head.relation ||= fields.first.first.relation - fields.each do |column, value| - @head.columns << column - @head.values << value + values = [] + + fields.each do |column, value| + @head.columns << column + values << value + end + @head.values = Nodes::Values.new values end end end |