提交 b541a963 编写于 作者: A Aaron Patterson

cleaning up confusing logic

上级 32157a2d
......@@ -274,10 +274,13 @@ def build_select(arel, selects)
@implicit_readonly = false
# TODO: fix this ugly hack, we should refactor the callers to get an ARel compatible array.
# Before this change we were passing to ARel the last element only, and ARel is capable of handling an array
if selects.all? {|s| s.is_a?(String) || !s.is_a?(Arel::Expression) } && !(selects.last =~ /^COUNT\(/)
arel.project(*selects)
case select = selects.last
when Arel::Expression, Arel::SqlLiteral
arel.project(select)
when /^COUNT\(/
arel.project(Arel::SqlLiteral.new(select))
else
arel.project(selects.last)
arel.project(*selects)
end
else
arel.project(Arel::SqlLiteral.new(@klass.quoted_table_name + '.*'))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册