aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation.rb
diff options
context:
space:
mode:
authorJason Meller <jason.meller@mandiant.com>2014-01-18 00:51:34 -0500
committerJason Meller <jason.meller@mandiant.com>2014-01-20 16:58:18 -0500
commitcafe31a078276dbf941bd8b30f0caddc878c0830 (patch)
tree5c6b3f1d480c2d5aa2600dd144b932c950394a11 /activerecord/lib/active_record/relation.rb
parent5a09f13a34426a02a305a12dfc90ced9bdd6c46e (diff)
downloadrails-cafe31a078276dbf941bd8b30f0caddc878c0830.tar.gz
rails-cafe31a078276dbf941bd8b30f0caddc878c0830.tar.bz2
rails-cafe31a078276dbf941bd8b30f0caddc878c0830.zip
Ensure #second acts like #first AR finder
This commit bring the famous ordinal Array instance methods defined in ActiveSupport into ActiveRecord as fully-fledged finders. These finders ensure a default ascending order of the table's primary key, and utilize the OFFSET SQL verb to locate the user's desired record. If an offset is defined in the query, calling #second adds to the offset to get the actual desired record. Fixes #13743.
Diffstat (limited to 'activerecord/lib/active_record/relation.rb')
-rw-r--r--activerecord/lib/active_record/relation.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb
index 745c6cf349..f152891888 100644
--- a/activerecord/lib/active_record/relation.rb
+++ b/activerecord/lib/active_record/relation.rb
@@ -20,10 +20,11 @@ module ActiveRecord
alias :model :klass
alias :loaded? :loaded
- def initialize(klass, table, values = {})
+ def initialize(klass, table, values = {}, offsets = {})
@klass = klass
@table = table
@values = values
+ @offsets = offsets
@loaded = false
end
@@ -498,6 +499,7 @@ module ActiveRecord
@first = @last = @to_sql = @order_clause = @scope_for_create = @arel = @loaded = nil
@should_eager_load = @join_dependency = nil
@records = []
+ @offsets = {}
self
end