diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2019-01-18 22:58:54 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-18 22:58:54 +0900 |
commit | ff3d1a42d5800c999be7351b72317cefb5961ee8 (patch) | |
tree | aebed0f35655dd073c8d7e271c56726ef171d3fb /activerecord/lib/active_record/core.rb | |
parent | 92cc996a09b7ffd5908c3c6771484fdf82e8729a (diff) | |
parent | c196ca72a0dfbea5f1730f830ea20a9e02a3c737 (diff) | |
download | rails-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.rb | 9 |
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 |