diff options
Diffstat (limited to 'lib/active_relation/sql.rb')
-rw-r--r-- | lib/active_relation/sql.rb | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/active_relation/sql.rb b/lib/active_relation/sql.rb index 89f6193cd8..bc658271c3 100644 --- a/lib/active_relation/sql.rb +++ b/lib/active_relation/sql.rb @@ -17,8 +17,8 @@ module ActiveRelation "#{quote_table_name(relation_name)}.#{quote_column_name(attribute_name)}" + (aliaz ? " AS #{quote(aliaz.to_s)}" : "") end - def select(select_sql) - "(#{select_sql})" + def select(select_sql, aliaz) + "(#{select_sql}) AS #{quote_column_name(aliaz)}" end end @@ -31,17 +31,23 @@ module ActiveRelation scalar end - def select(select_sql) + def select(select_sql, aliaz) "(#{select_sql})" end end class Select < Strategy - def select(select_sql) + def select(select_sql, aliaz) select_sql end end + class Aggregation < Strategy + def select(select_sql, aliaz) + "(#{select_sql}) AS #{quote_table_name(aliaz)}" + end + end + class Scalar < Strategy def scalar(scalar) quote(scalar) |