From 711a882f106385e248135c84ea9a6a827f0bd1e1 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Sat, 12 Apr 2014 10:14:12 -0700 Subject: don't bother with an offset if the offset is zero we're guaranteed to pass a numeric value for offset, so if it's zero, just don't add an offset to the query --- activerecord/lib/active_record/relation/finder_methods.rb | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb index 8daea2c13e..7af4b29ebc 100644 --- a/activerecord/lib/active_record/relation/finder_methods.rb +++ b/activerecord/lib/active_record/relation/finder_methods.rb @@ -129,7 +129,7 @@ module ActiveRecord # def first(limit = nil) if limit - find_nth_with_limit(offset_value, limit) + find_nth_with_limit(offset_index, limit) else find_nth(0, offset_index) end @@ -482,11 +482,14 @@ module ActiveRecord end def find_nth_with_limit(offset, limit) - if order_values.empty? && primary_key - order(arel_table[primary_key].asc).limit(limit).offset(offset).to_a - else - limit(limit).offset(offset).to_a - end + relation = if order_values.empty? && primary_key + order(arel_table[primary_key].asc) + else + self + end + + relation = relation.offset(offset) unless offset.zero? + relation.limit(limit).to_a end def find_last -- cgit v1.2.3