aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation/query_attribute.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2019-02-19 13:41:02 +0900
committerGitHub <noreply@github.com>2019-02-19 13:41:02 +0900
commit84bd9adafde36d0192849649b86ffcd4e59e5e11 (patch)
treed264a76dc0b85041f31f4b4f6b549b431da97715 /activerecord/lib/active_record/relation/query_attribute.rb
parent02e6abd8fd5ad883fd2f29fd5850e650dd121805 (diff)
parentb09d8f6bb3a23cd907d084103fb5b4c02479a39b (diff)
downloadrails-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.rb6
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