aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2010-12-16 22:20:42 +0100
committerPiotr Sarnacki <drogus@gmail.com>2010-12-16 22:25:09 +0100
commit40b15f9f389b9394b22cf36567269e54c66c9fc8 (patch)
tree4d4639208f85d3f32933e13744b6c481671fda18 /activerecord
parente89fff2f6b815529cf729fc8e900a8275c9514e8 (diff)
downloadrails-40b15f9f389b9394b22cf36567269e54c66c9fc8.tar.gz
rails-40b15f9f389b9394b22cf36567269e54c66c9fc8.tar.bz2
rails-40b15f9f389b9394b22cf36567269e54c66c9fc8.zip
ActiveRecord::Base.joins should allow single nil argument [#6181 state:resolved]
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/relation/query_methods.rb2
-rw-r--r--activerecord/test/cases/relations_test.rb4
2 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb
index 6660df302b..0ab55ae864 100644
--- a/activerecord/lib/active_record/relation/query_methods.rb
+++ b/activerecord/lib/active_record/relation/query_methods.rb
@@ -63,7 +63,7 @@ module ActiveRecord
end
def joins(*args)
- return self if args.blank?
+ return self if args.compact.blank?
relation = clone
diff --git a/activerecord/test/cases/relations_test.rb b/activerecord/test/cases/relations_test.rb
index 0b106e3bcd..20bfafbc5e 100644
--- a/activerecord/test/cases/relations_test.rb
+++ b/activerecord/test/cases/relations_test.rb
@@ -184,6 +184,10 @@ class RelationTest < ActiveRecord::TestCase
assert_equal [2, 4, 6, 8, 10], even_ids.sort
end
+ def test_joins_with_nil_argument
+ assert_nothing_raised { DependentFirm.joins(nil).first }
+ end
+
def test_finding_with_hash_conditions_on_joined_table
firms = DependentFirm.joins(:account).where({:name => 'RailsCore', :accounts => { :credit_limit => 55..60 }}).to_a
assert_equal 1, firms.size