From b570b6b1768f4e89b4f21526763cae77c2ff03fe Mon Sep 17 00:00:00 2001 From: Mauro George Date: Thu, 23 Oct 2014 19:48:12 -0200 Subject: Raises ArgumentError when try to define a scope without a callable This changes the actual exception `NoMethodError: undefined method `call' for #` to a `ArgumentError` when try to define a scope without a callable. --- activerecord/test/cases/scoping/named_scoping_test.rb | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'activerecord/test') diff --git a/activerecord/test/cases/scoping/named_scoping_test.rb b/activerecord/test/cases/scoping/named_scoping_test.rb index d3546bd471..d8906b2299 100644 --- a/activerecord/test/cases/scoping/named_scoping_test.rb +++ b/activerecord/test/cases/scoping/named_scoping_test.rb @@ -132,6 +132,12 @@ class NamedScopingTest < ActiveRecord::TestCase assert_equal Post.ranked_by_comments.limit_by(5), Post.top(5) end + def test_scopes_body_is_a_callable + assert_raises(ArgumentError, 'You need to suply a callable as scope body') do + Post.class_eval { scope :containing_the_letter_z, where("body LIKE '%z%'") } + end + end + def test_active_records_have_scope_named__all__ assert !Topic.all.empty? -- cgit v1.2.3