aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation/predicate_builder
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2018-02-28 03:07:56 +0900
committerRyuta Kamizono <kamipo@gmail.com>2018-03-04 02:34:00 +0900
commitd35875b7a3f559155a9378cbe9203b0b8ea580f9 (patch)
treee8d8c225cf2309976327a94370f09f901023a9b1 /activerecord/lib/active_record/relation/predicate_builder
parent75a24602edacd3e66b5c38c2b5efe885dfdd14ab (diff)
downloadrails-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.rb12
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