aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorSean Griffin <sean@seantheprogrammer.com>2015-03-02 09:38:27 -0700
committerSean Griffin <sean@seantheprogrammer.com>2015-03-02 09:38:27 -0700
commite20dc1b313303540b44effd94fbc8cf39121ad28 (patch)
tree64841519da3cca0ff5f66edf8720cc6d90a36593 /activerecord/test
parentc0584ea0346062982cfe3c776c826ea1b026a8ac (diff)
parent243cb81010dbf30ab99d6682a758048bfcb24bc7 (diff)
downloadrails-e20dc1b313303540b44effd94fbc8cf39121ad28.tar.gz
rails-e20dc1b313303540b44effd94fbc8cf39121ad28.tar.bz2
rails-e20dc1b313303540b44effd94fbc8cf39121ad28.zip
Merge pull request #19105 from amatsuda/array_take
Preserve Array#take(n) behaviour of HasManyAssociation
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/associations/has_many_associations_test.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/has_many_associations_test.rb b/activerecord/test/cases/associations/has_many_associations_test.rb
index 897c52a49d..675bed9bfa 100644
--- a/activerecord/test/cases/associations/has_many_associations_test.rb
+++ b/activerecord/test/cases/associations/has_many_associations_test.rb
@@ -478,6 +478,19 @@ class HasManyAssociationsTest < ActiveRecord::TestCase
assert_raise(ActiveRecord::RecordNotFound) { authors(:bob).posts.take! }
end
+ def test_taking_with_a_number
+ # taking from unloaded Relation
+ bob = Author.find(authors(:bob).id)
+ assert_equal [posts(:misc_by_bob)], bob.posts.take(1)
+ bob = Author.find(authors(:bob).id)
+ assert_equal [posts(:misc_by_bob), posts(:other_by_bob)], bob.posts.take(2)
+
+ # taking from loaded Relation
+ bob.posts.to_a
+ assert_equal [posts(:misc_by_bob)], authors(:bob).posts.take(1)
+ assert_equal [posts(:misc_by_bob), posts(:other_by_bob)], authors(:bob).posts.take(2)
+ end
+
def test_taking_with_inverse_of
interests(:woodsmanship).destroy
interests(:survival).destroy