aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/collection_association.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-12-31 22:16:07 +0900
committerRyuta Kamizono <kamipo@gmail.com>2018-01-01 05:26:35 +0900
commite4c6a84fb15c7856b66d8fb478d396d68ba50c34 (patch)
treeeb77df908e26a3911c8fb0d4ca38dfbe3100556e /activerecord/lib/active_record/associations/collection_association.rb
parentb5580e439a24b64eba5aede0965f2c4f57463792 (diff)
downloadrails-e4c6a84fb15c7856b66d8fb478d396d68ba50c34.tar.gz
rails-e4c6a84fb15c7856b66d8fb478d396d68ba50c34.tar.bz2
rails-e4c6a84fb15c7856b66d8fb478d396d68ba50c34.zip
Remove `association_primary_key_type` from `AssociationReflection` and `ThroughReflection`
This method was introduced in #26718, which is internally used only in `CollectionAssociation`. There is no need to be in the reflection classes.
Diffstat (limited to 'activerecord/lib/active_record/associations/collection_association.rb')
-rw-r--r--activerecord/lib/active_record/associations/collection_association.rb4
1 files changed, 2 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/associations/collection_association.rb b/activerecord/lib/active_record/associations/collection_association.rb
index 921237a735..de8afc9ccb 100644
--- a/activerecord/lib/active_record/associations/collection_association.rb
+++ b/activerecord/lib/active_record/associations/collection_association.rb
@@ -52,11 +52,11 @@ module ActiveRecord
# Implements the ids writer method, e.g. foo.item_ids= for Foo.has_many :items
def ids_writer(ids)
- pk_type = reflection.association_primary_key_type
+ primary_key = reflection.association_primary_key
+ pk_type = klass.type_for_attribute(primary_key.to_s)
ids = Array(ids).reject(&:blank?)
ids.map! { |i| pk_type.cast(i) }
- primary_key = reflection.association_primary_key
records = klass.where(primary_key => ids).index_by do |r|
r.public_send(primary_key)
end.values_at(*ids).compact