From 763de2ac1c85d3e9f82639783a55244d6c0517c2 Mon Sep 17 00:00:00 2001 From: Benjamin Quorning Date: Fri, 24 Jun 2016 09:49:42 +0200 Subject: Optimize ActiveRecord::Result#last If you only want the last element of a result set, there's no need to create all of hash_rows. Also, add a test. --- activerecord/lib/active_record/result.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/result.rb b/activerecord/lib/active_record/result.rb index f45f664efe..b9fd0f5326 100644 --- a/activerecord/lib/active_record/result.rb +++ b/activerecord/lib/active_record/result.rb @@ -81,7 +81,8 @@ module ActiveRecord end def last - hash_rows.last + return nil if @rows.empty? + Hash[@columns.zip(@rows.last)] end def cast_values(type_overrides = {}) # :nodoc: -- cgit v1.2.3