aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel/algebra/relations/relation.rb9
-rw-r--r--spec/attributes/header_spec.rb11
-rw-r--r--spec/engines/sql/unit/primitives/attribute_spec.rb19
3 files changed, 10 insertions, 29 deletions
diff --git a/lib/arel/algebra/relations/relation.rb b/lib/arel/algebra/relations/relation.rb
index ef2108dcaa..ffd31ae470 100644
--- a/lib/arel/algebra/relations/relation.rb
+++ b/lib/arel/algebra/relations/relation.rb
@@ -84,14 +84,7 @@ module Arel
module AttributeAccessable
def [](index)
- attr = attributes[index]
-
- # Handles a strange ActiveRecord case
- if !attr && (index.is_a?(String) || index.is_a?(Symbol))
- attr = Attribute.new(self, index)
- end
-
- attr
+ attributes[index]
end
def find_attribute_matching_name(name)
diff --git a/spec/attributes/header_spec.rb b/spec/attributes/header_spec.rb
index 5811041734..8fb4007003 100644
--- a/spec/attributes/header_spec.rb
+++ b/spec/attributes/header_spec.rb
@@ -18,8 +18,15 @@ module Arel
end
end
- it "finds attributes by name" do
- @relation.attributes[:name].should == Attributes::String.new(@relation, :name)
+ describe "attribute lookup" do
+ it "finds attributes by name" do
+ @relation.attributes[:name].should == Attributes::String.new(@relation, :name)
+ end
+
+ it "returns nil if no attribute is found" do
+ @relation.attributes[:does_not_exist].should be_nil
+ @relation[:does_not_exist].should be_nil
+ end
end
describe "#union" do
diff --git a/spec/engines/sql/unit/primitives/attribute_spec.rb b/spec/engines/sql/unit/primitives/attribute_spec.rb
index c467d902ad..9f864dd3a1 100644
--- a/spec/engines/sql/unit/primitives/attribute_spec.rb
+++ b/spec/engines/sql/unit/primitives/attribute_spec.rb
@@ -31,25 +31,6 @@ module Arel
end
end
end
-
- describe 'for an inexistent attribute' do
- it "manufactures sql" do
- sql = @relation[:does_not_exist].to_sql
-
- adapter_is :mysql do
- sql.should be_like(%Q{`users`.`does_not_exist`})
- end
-
- adapter_is :oracle do
- sql.should be_like(%Q{"USERS"."DOEST_NOT_EXIST"})
- end
-
- adapter_is_not :mysql, :oracle do
- sql.should be_like(%Q{"users"."does_not_exist"})
- end
- end
- end
-
end
end
end