diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2019-02-19 13:41:02 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-19 13:41:02 +0900 |
commit | 84bd9adafde36d0192849649b86ffcd4e59e5e11 (patch) | |
tree | d264a76dc0b85041f31f4b4f6b549b431da97715 /activerecord/lib/active_record/relation/query_attribute.rb | |
parent | 02e6abd8fd5ad883fd2f29fd5850e650dd121805 (diff) | |
parent | b09d8f6bb3a23cd907d084103fb5b4c02479a39b (diff) | |
download | rails-84bd9adafde36d0192849649b86ffcd4e59e5e11.tar.gz rails-84bd9adafde36d0192849649b86ffcd4e59e5e11.tar.bz2 rails-84bd9adafde36d0192849649b86ffcd4e59e5e11.zip |
Merge pull request #35310 from kamipo/dont_allow_invalid_value_matches_to_nil
Don't allow `where` with invalid value matches to nil values
Diffstat (limited to 'activerecord/lib/active_record/relation/query_attribute.rb')
-rw-r--r-- | activerecord/lib/active_record/relation/query_attribute.rb | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/relation/query_attribute.rb b/activerecord/lib/active_record/relation/query_attribute.rb index 1dd6462d8d..cd18f27330 100644 --- a/activerecord/lib/active_record/relation/query_attribute.rb +++ b/activerecord/lib/active_record/relation/query_attribute.rb @@ -18,8 +18,10 @@ module ActiveRecord end def nil? - !value_before_type_cast.is_a?(StatementCache::Substitute) && - (value_before_type_cast.nil? || value_for_database.nil?) + unless value_before_type_cast.is_a?(StatementCache::Substitute) + value_before_type_cast.nil? || + type.respond_to?(:subtype, true) && value_for_database.nil? + end rescue ::RangeError end |