aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2016-08-18 23:14:27 -0300
committerGitHub <noreply@github.com>2016-08-18 23:14:27 -0300
commit085166d59a039bce0e45979a2dec25160bc80f14 (patch)
tree1d72c67eb6289f6dd2ab35b3f5ec4acb154b95b7 /activerecord/lib/active_record/relation
parentc2af081c4f566560e3caab0a8c10893093b9e826 (diff)
parent592e6b7e894e0fff07ab8233fce4bf77968ee8b6 (diff)
downloadrails-085166d59a039bce0e45979a2dec25160bc80f14.tar.gz
rails-085166d59a039bce0e45979a2dec25160bc80f14.tar.bz2
rails-085166d59a039bce0e45979a2dec25160bc80f14.zip
Merge pull request #26200 from kamipo/remove_unnecessary_ordinal_methods
Remove unnecessary ordinal methods for collection association
Diffstat (limited to 'activerecord/lib/active_record/relation')
-rw-r--r--activerecord/lib/active_record/relation/finder_methods.rb12
1 files changed, 10 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb
index ff43def901..376867675b 100644
--- a/activerecord/lib/active_record/relation/finder_methods.rb
+++ b/activerecord/lib/active_record/relation/finder_methods.rb
@@ -97,7 +97,7 @@ module ActiveRecord
# Person.take(5) # returns 5 objects fetched by SELECT * FROM people LIMIT 5
# Person.where(["name LIKE '%?'", name]).take
def take(limit = nil)
- limit ? limit(limit).to_a : find_take
+ limit ? find_take_with_limit(limit) : find_take
end
# Same as #take but raises ActiveRecord::RecordNotFound if no record
@@ -526,13 +526,21 @@ module ActiveRecord
end
end
+ def find_take_with_limit(limit)
+ if loaded?
+ records.take(limit)
+ else
+ limit(limit).to_a
+ end
+ end
+
def find_nth(index)
@offsets[offset_index + index] ||= find_nth_with_limit(index, 1).first
end
def find_nth_with_limit(index, limit)
if loaded?
- records[index, limit]
+ records[index, limit] || []
else
relation = if order_values.empty? && primary_key
order(arel_attribute(primary_key).asc)