diff options
author | Jon Leighton <j@jonathanleighton.com> | 2011-01-03 19:54:38 +0000 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2011-01-03 16:24:32 -0800 |
commit | 0619dc2319cf839977ea9670a52d9280a1af3595 (patch) | |
tree | 74529dc1679b24520bc61ea0e453b724b94b94cd /activerecord | |
parent | a9bed985cfd7d1ae93f475542bb878aa939e1c1e (diff) | |
download | rails-0619dc2319cf839977ea9670a52d9280a1af3595.tar.gz rails-0619dc2319cf839977ea9670a52d9280a1af3595.tar.bz2 rails-0619dc2319cf839977ea9670a52d9280a1af3595.zip |
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.
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/reflection.rb | 6 | ||||
-rw-r--r-- | activerecord/test/cases/reflection_test.rb | 12 |
2 files changed, 18 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/reflection.rb b/activerecord/lib/active_record/reflection.rb index bc5824104e..937efe395f 100644 --- a/activerecord/lib/active_record/reflection.rb +++ b/activerecord/lib/active_record/reflection.rb @@ -1,4 +1,5 @@ require 'active_support/core_ext/class/attribute' +require 'active_support/core_ext/module/deprecation' module ActiveRecord # = Active Record Reflection @@ -200,6 +201,11 @@ module ActiveRecord @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 diff --git a/activerecord/test/cases/reflection_test.rb b/activerecord/test/cases/reflection_test.rb index 081e3cc861..d75bc3982e 100644 --- a/activerecord/test/cases/reflection_test.rb +++ b/activerecord/test/cases/reflection_test.rb @@ -248,6 +248,18 @@ class ReflectionTest < ActiveRecord::TestCase 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) |