diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2018-02-28 03:07:56 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2018-03-04 02:34:00 +0900 |
commit | d35875b7a3f559155a9378cbe9203b0b8ea580f9 (patch) | |
tree | e8d8c225cf2309976327a94370f09f901023a9b1 /activerecord/lib/active_record/relation/predicate_builder | |
parent | 75a24602edacd3e66b5c38c2b5efe885dfdd14ab (diff) | |
download | rails-d35875b7a3f559155a9378cbe9203b0b8ea580f9.tar.gz rails-d35875b7a3f559155a9378cbe9203b0b8ea580f9.tar.bz2 rails-d35875b7a3f559155a9378cbe9203b0b8ea580f9.zip |
Extract all `base_class.name` as `polymorphic_name`
This is an alternative of #29722, and follow up of #32048.
This does not change the current behavior, but makes it easier to modify
all polymorphic names consistently.
Diffstat (limited to 'activerecord/lib/active_record/relation/predicate_builder')
-rw-r--r-- | activerecord/lib/active_record/relation/predicate_builder/polymorphic_array_value.rb | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/relation/predicate_builder/polymorphic_array_value.rb b/activerecord/lib/active_record/relation/predicate_builder/polymorphic_array_value.rb index a5e9a0473e..aae04d9348 100644 --- a/activerecord/lib/active_record/relation/predicate_builder/polymorphic_array_value.rb +++ b/activerecord/lib/active_record/relation/predicate_builder/polymorphic_array_value.rb @@ -22,19 +22,21 @@ module ActiveRecord def type_to_ids_mapping default_hash = Hash.new { |hsh, key| hsh[key] = [] } - values.each_with_object(default_hash) { |value, hash| hash[base_class(value).name] << convert_to_id(value) } + values.each_with_object(default_hash) do |value, hash| + hash[klass(value).polymorphic_name] << convert_to_id(value) + end end def primary_key(value) - associated_table.association_join_primary_key(base_class(value)) + associated_table.association_join_primary_key(klass(value)) end - def base_class(value) + def klass(value) case value when Base - value.class.base_class + value.class when Relation - value.klass.base_class + value.klass end end |