From b75a67cdef06cbf0a5a4feb1be9c74f31b89b28a Mon Sep 17 00:00:00 2001 From: Brian Christian Date: Tue, 9 Jan 2018 11:28:30 -0800 Subject: resolve inconsistencies between first and to_a.first with limit --- activerecord/lib/active_record/relation/finder_methods.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'activerecord/lib/active_record/relation') diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb index e61cacf6a7..50d0f14b98 100644 --- a/activerecord/lib/active_record/relation/finder_methods.rb +++ b/activerecord/lib/active_record/relation/finder_methods.rb @@ -532,7 +532,11 @@ module ActiveRecord else relation = ordered_relation - if limit_value.nil? || index < limit_value + if limit_value + limit = [limit_value - index, limit].min + end + + if limit > 0 relation = relation.offset(offset_index + index) unless index.zero? relation.limit(limit).to_a else -- cgit v1.2.3