提交 0619dc23 编写于 作者: J Jon Leighton 提交者: Aaron Patterson

Implement deprecated version of AssociationReflection#primary_key_name, which...

Implement deprecated version of AssociationReflection#primary_key_name, which has been renamed to #foreign_key. Also bumping the deprecation_horizon in Active Support to 3.1.
上级 a9bed985
require 'active_support/core_ext/class/attribute'
require 'active_support/core_ext/module/deprecation'
module ActiveRecord
# = Active Record Reflection
......@@ -200,6 +201,11 @@ def foreign_key
@foreign_key ||= options[:foreign_key] || derive_foreign_key
end
def primary_key_name
foreign_key
end
deprecate :primary_key_name => :foreign_key
def foreign_type
@foreign_type ||= options[:foreign_type] || "#{name}_type"
end
......
......@@ -248,6 +248,18 @@ def test_never_validate_association_if_explicit
assert !AssociationReflection.new(:has_and_belongs_to_many, :clients, { :autosave => true, :validate => false }, Firm).validate?
end
def test_foreign_key
assert_equal "author_id", Author.reflect_on_association(:posts).foreign_key.to_s
assert_equal "category_id", Post.reflect_on_association(:categorizations).foreign_key.to_s
end
def test_primary_key_name
assert_deprecated do
assert_equal "author_id", Author.reflect_on_association(:posts).primary_key_name.to_s
assert_equal "category_id", Post.reflect_on_association(:categorizations).primary_key_name.to_s
end
end
private
def assert_reflection(klass, association, options)
assert reflection = klass.reflect_on_association(association)
......
......@@ -9,7 +9,7 @@ class << self
# The version the deprecated behavior will be removed, by default.
attr_accessor :deprecation_horizon
end
self.deprecation_horizon = '3.0'
self.deprecation_horizon = '3.1'
# By default, warnings are not silenced and debugging is off.
self.silenced = false
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册