aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/core.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2019-01-18 22:58:54 +0900
committerGitHub <noreply@github.com>2019-01-18 22:58:54 +0900
commitff3d1a42d5800c999be7351b72317cefb5961ee8 (patch)
treeaebed0f35655dd073c8d7e271c56726ef171d3fb /activerecord/lib/active_record/core.rb
parent92cc996a09b7ffd5908c3c6771484fdf82e8729a (diff)
parentc196ca72a0dfbea5f1730f830ea20a9e02a3c737 (diff)
downloadrails-ff3d1a42d5800c999be7351b72317cefb5961ee8.tar.gz
rails-ff3d1a42d5800c999be7351b72317cefb5961ee8.tar.bz2
rails-ff3d1a42d5800c999be7351b72317cefb5961ee8.zip
Merge pull request #30000 from kamipo/all_of_queries_should_return_correct_result
All of queries should return correct result even if including large number
Diffstat (limited to 'activerecord/lib/active_record/core.rb')
-rw-r--r--activerecord/lib/active_record/core.rb9
1 files changed, 2 insertions, 7 deletions
diff --git a/activerecord/lib/active_record/core.rb b/activerecord/lib/active_record/core.rb
index 600825659b..369d63e40a 100644
--- a/activerecord/lib/active_record/core.rb
+++ b/activerecord/lib/active_record/core.rb
@@ -169,15 +169,12 @@ module ActiveRecord
where(key => params.bind).limit(1)
}
- record = statement.execute([id], connection).first
+ record = statement.execute([id], connection)&.first
unless record
raise RecordNotFound.new("Couldn't find #{name} with '#{primary_key}'=#{id}",
name, primary_key, id)
end
record
- rescue ::RangeError
- raise RecordNotFound.new("Couldn't find #{name} with an out of range value for '#{primary_key}'",
- name, primary_key)
end
def find_by(*args) # :nodoc:
@@ -201,11 +198,9 @@ module ActiveRecord
where(wheres).limit(1)
}
begin
- statement.execute(hash.values, connection).first
+ statement.execute(hash.values, connection)&.first
rescue TypeError
raise ActiveRecord::StatementInvalid
- rescue ::RangeError
- nil
end
end