提交 dae16f8c 编写于 作者: R Ryuta Kamizono

The name of the key on the associated record is abstracted as `reflection.join_primary_key`

上级 a1aa86b9
......@@ -22,16 +22,16 @@ def run(preloader)
end
end
# The name of the key on the associated records
def association_key_name
raise NotImplementedError
end
private
def options
reflection.options
end
# The name of the key on the associated records
def association_key_name
reflection.join_primary_key(klass)
end
# The name of the key on the model which declares the association
def owner_key_name
reflection.join_foreign_key
......
......@@ -4,9 +4,6 @@ module ActiveRecord
module Associations
class Preloader
class BelongsTo < SingularAssociation #:nodoc:
def association_key_name
options[:primary_key] || klass && klass.primary_key
end
end
end
end
......
......@@ -4,9 +4,6 @@ module ActiveRecord
module Associations
class Preloader
class HasMany < CollectionAssociation #:nodoc:
def association_key_name
reflection.foreign_key
end
end
end
end
......
......@@ -4,9 +4,6 @@ module ActiveRecord
module Associations
class Preloader
class HasOne < SingularAssociation #:nodoc:
def association_key_name
reflection.foreign_key
end
end
end
end
......
......@@ -292,13 +292,17 @@ def chain
end
def get_join_keys(association_klass)
JoinKeys.new(join_pk(association_klass), join_foreign_key)
JoinKeys.new(join_primary_key(association_klass), join_foreign_key)
end
def build_scope(table, predicate_builder = predicate_builder(table))
Relation.create(klass, table, predicate_builder)
end
def join_primary_key(_)
foreign_key
end
def join_foreign_key
active_record_primary_key
end
......@@ -313,10 +317,6 @@ def predicate_builder(table)
PredicateBuilder.new(TableMetadata.new(klass, table))
end
def join_pk(_)
foreign_key
end
def primary_key(klass)
klass.primary_key || raise(UnknownPrimaryKey.new(klass))
end
......@@ -736,6 +736,10 @@ def association_class
end
end
def join_primary_key(klass)
polymorphic? ? association_primary_key(klass) : association_primary_key
end
def join_foreign_key
foreign_key
end
......@@ -745,10 +749,6 @@ def join_foreign_key
def calculate_constructable(macro, options)
!polymorphic?
end
def join_pk(klass)
polymorphic? ? association_primary_key(klass) : association_primary_key
end
end
class HasAndBelongsToManyReflection < AssociationReflection # :nodoc:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册