提交 37620b0c 编写于 作者: A Aaron Patterson

VALUES are getting better everyday

上级 b12a0c33
......@@ -27,7 +27,7 @@ def insert fields
@head.columns << column
values << value
end
@head.values = Nodes::Values.new values
@head.values = Nodes::Values.new values, @head.columns
end
end
end
......
module Arel
module Nodes
class Values
attr_accessor :expressions
attr_accessor :expressions, :columns
def initialize exprs
def initialize exprs, columns = []
@expressions = exprs
@columns = columns
end
end
end
......
......@@ -46,8 +46,8 @@ def visit_Arel_Nodes_Exists o
end
def visit_Arel_Nodes_Values o
"VALUES (#{o.expressions.map { |value|
value.nil? ? 'NULL' : visit(value)
"VALUES (#{o.expressions.zip(o.columns).map { |value, column|
quote(value, column && column.column)
}.join ', '})"
end
......
......@@ -12,6 +12,11 @@ module Arel
it "inserts false" do
table = Table.new(:users)
manager = Arel::InsertManager.new Table.engine
table[:id].column.extend(Module.new {
def type; :boolean; end
})
manager.insert [[table[:id], false]]
manager.to_sql.should be_like %{
INSERT INTO "users" ("id") VALUES ('f')
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册