aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel/select_manager.rb2
-rw-r--r--spec/select_manager_spec.rb12
2 files changed, 13 insertions, 1 deletions
diff --git a/lib/arel/select_manager.rb b/lib/arel/select_manager.rb
index 66227bc0db..7c3c67b477 100644
--- a/lib/arel/select_manager.rb
+++ b/lib/arel/select_manager.rb
@@ -96,7 +96,7 @@ module Arel
# FIXME: converting these to SQLLiterals is probably not good, but
# rails tests require it.
@ctx.projections.concat projections.map { |x|
- String == x.class ? SqlLiteral.new(x) : x
+ [Symbol, String].include?(x.class) ? SqlLiteral.new(x.to_s) : x
}
self
end
diff --git a/spec/select_manager_spec.rb b/spec/select_manager_spec.rb
index b8512eb741..fa289e0d08 100644
--- a/spec/select_manager_spec.rb
+++ b/spec/select_manager_spec.rb
@@ -37,6 +37,18 @@ module Arel
describe 'select manager' do
describe 'backwards compatibility' do
+ describe 'project' do
+ it 'accepts symbols as sql literals' do
+ table = Table.new :users
+ manager = Arel::SelectManager.new Table.engine
+ manager.project :id
+ manager.from table
+ manager.to_sql.should be_like %{
+ SELECT id FROM "users"
+ }
+ end
+ end
+
describe 'order' do
it 'accepts symbols' do
table = Table.new :users