diff options
| author | Ryuta Kamizono <kamipo@gmail.com> | 2018-01-10 04:59:33 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-01-10 04:59:33 +0900 |
| commit | d7d6921540d5cd45d5925db3b632f3a7e122ab5c (patch) | |
| tree | e7ad826119d2287abb31d56e13787c10a4656a64 /activerecord/lib | |
| parent | 33721a71e39d5a228ae3cd7949fa83198dc3eaa9 (diff) | |
| parent | b75a67cdef06cbf0a5a4feb1be9c74f31b89b28a (diff) | |
| download | rails-d7d6921540d5cd45d5925db3b632f3a7e122ab5c.tar.gz rails-d7d6921540d5cd45d5925db3b632f3a7e122ab5c.tar.bz2 rails-d7d6921540d5cd45d5925db3b632f3a7e122ab5c.zip | |
Merge pull request #27597 from brchristian/first_last_parity
Consistency between first() and last() with limit
Diffstat (limited to 'activerecord/lib')
| -rw-r--r-- | activerecord/lib/active_record/relation/finder_methods.rb | 6 |
1 files changed, 5 insertions, 1 deletions
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 |
