aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-09-27 16:51:12 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2010-09-27 16:51:12 -0700
commit133742d185c2abf0fb443b694a305a4b68259bcb (patch)
tree3693d2cf0b0419e0835c4b6de1cf04ff0205bdfc /activerecord
parentb1f5e90839a760c926403046ef43dd60af9fcf07 (diff)
downloadrails-133742d185c2abf0fb443b694a305a4b68259bcb.tar.gz
rails-133742d185c2abf0fb443b694a305a4b68259bcb.tar.bz2
rails-133742d185c2abf0fb443b694a305a4b68259bcb.zip
@klass also uses DynamicFinderMatch, so no need for it on the relation
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/relation.rb9
-rw-r--r--activerecord/test/cases/relations_test.rb5
2 files changed, 5 insertions, 9 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb
index 478f1e8ef1..dfc66cdd09 100644
--- a/activerecord/lib/active_record/relation.rb
+++ b/activerecord/lib/active_record/relation.rb
@@ -358,15 +358,6 @@ module ActiveRecord
scoping { @klass.send(method, *args, &block) }
elsif arel.respond_to?(method)
arel.send(method, *args, &block)
- elsif match = DynamicFinderMatch.match(method)
- attributes = match.attribute_names
- super unless @klass.send(:all_attributes_exists?, attributes)
-
- if match.finder?
- find_by_attributes(match, attributes, *args)
- elsif match.instantiator?
- find_or_instantiator_by_attributes(match, attributes, *args, &block)
- end
else
super
end
diff --git a/activerecord/test/cases/relations_test.rb b/activerecord/test/cases/relations_test.rb
index 3bc3671b77..d642aeed8b 100644
--- a/activerecord/test/cases/relations_test.rb
+++ b/activerecord/test/cases/relations_test.rb
@@ -32,6 +32,11 @@ class RelationTest < ActiveRecord::TestCase
assert_equal 5, Post.where(:id => post_authors).size
end
+ def test_dynamic_finder
+ x = Post.where('author_id = ?', 1)
+ assert x.klass.respond_to?(:find_by_id), '@klass should handle dynamic finders'
+ end
+
def test_multivalue_where
posts = Post.where('author_id = ? AND id = ?', 1, 1)
assert_equal 1, posts.to_a.size