diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2010-10-15 15:45:55 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2010-10-15 15:45:55 -0700 |
commit | 3aace4a4716a0aa88cf605a814ea05d4b841edc5 (patch) | |
tree | 657ef6f8b2e423ef688c702f792fa4a1f196608c | |
parent | 3e5186ffd8b708752f5af054074809f7563f1328 (diff) | |
download | rails-3aace4a4716a0aa88cf605a814ea05d4b841edc5.tar.gz rails-3aace4a4716a0aa88cf605a814ea05d4b841edc5.tar.bz2 rails-3aace4a4716a0aa88cf605a814ea05d4b841edc5.zip |
symbols work as sql literals
-rw-r--r-- | lib/arel/select_manager.rb | 2 | ||||
-rw-r--r-- | spec/select_manager_spec.rb | 12 |
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 |