diff options
author | Yves Senn <yves.senn@gmail.com> | 2013-02-08 10:32:46 +0100 |
---|---|---|
committer | Yves Senn <yves.senn@gmail.com> | 2013-02-24 16:49:47 +0100 |
commit | 96c1cafd3ab6250875cc62034000ea83ae1587af (patch) | |
tree | 0d4e017c6826cdb3ae559052aa450ee7a7d8f5ea /activerecord | |
parent | fb40358f4f3d0028bbcd1a8f1fc74b1453e2014a (diff) | |
download | rails-96c1cafd3ab6250875cc62034000ea83ae1587af.tar.gz rails-96c1cafd3ab6250875cc62034000ea83ae1587af.tar.bz2 rails-96c1cafd3ab6250875cc62034000ea83ae1587af.zip |
test case to prevent duplicated associations with custom PK.
closes #9201
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/test/cases/associations/has_many_associations_test.rb | 10 | ||||
-rw-r--r-- | activerecord/test/models/speedometer.rb | 2 |
2 files changed, 12 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/has_many_associations_test.rb b/activerecord/test/cases/associations/has_many_associations_test.rb index fd6d531645..d0add42e1e 100644 --- a/activerecord/test/cases/associations/has_many_associations_test.rb +++ b/activerecord/test/cases/associations/has_many_associations_test.rb @@ -20,6 +20,8 @@ require 'models/car' require 'models/bulb' require 'models/engine' require 'models/categorization' +require 'models/minivan' +require 'models/speedometer' class HasManyAssociationsTestForCountWithFinderSql < ActiveRecord::TestCase class Invoice < ActiveRecord::Base @@ -1747,4 +1749,12 @@ class HasManyAssociationsTest < ActiveRecord::TestCase david.posts_with_special_categorizations = [] assert_equal [], david.posts_with_special_categorizations end + + test "does not duplicate associations when used with natural primary keys" do + speedometer = Speedometer.create!(id: '4') + minivan = speedometer.minivans.create!(minivan_id: 'a-van-red' ,name: 'a van', color: 'red') + + assert_equal 1, speedometer.minivans.to_a.size, "Only one association should be present:\n#{speedometer.minivans.to_a}" + assert_equal 1, speedometer.reload.minivans.to_a.size + end end diff --git a/activerecord/test/models/speedometer.rb b/activerecord/test/models/speedometer.rb index 0a7d38d8ec..497c3aba9a 100644 --- a/activerecord/test/models/speedometer.rb +++ b/activerecord/test/models/speedometer.rb @@ -1,4 +1,6 @@ class Speedometer < ActiveRecord::Base self.primary_key = :speedometer_id belongs_to :dashboard + + has_many :minivans end |