Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Removes the restriction on primary key when joining in a habtm && tes…

…t that it was properly removed
  • Loading branch information...
commit ec44763f03b49e8c6e3bff71772ba32863a01306 1 parent bf9272b
@TheEmpty TheEmpty authored
View
6 activerecord/lib/active_record/associations.rb
@@ -76,12 +76,6 @@ def initialize(owner, reflection)
end
end
- class HasAndBelongsToManyAssociationWithPrimaryKeyError < ActiveRecordError #:nodoc:
- def initialize(reflection)
- super("Primary key is not allowed in a has_and_belongs_to_many join table (#{reflection.options[:join_table]}).")
- end
- end
-
class HasAndBelongsToManyAssociationForeignKeyNeeded < ActiveRecordError #:nodoc:
def initialize(reflection)
super("Cannot create self referential has_and_belongs_to_many association on '#{reflection.class_name rescue nil}##{reflection.name rescue nil}'. :association_foreign_key cannot be the same as the :foreign_key.")
View
4 activerecord/lib/active_record/associations/builder/has_and_belongs_to_many.rb
@@ -39,10 +39,6 @@ def check_validity(reflection)
model.send(:undecorated_table_name, model.to_s),
model.send(:undecorated_table_name, reflection.class_name)
)
-
- if model.connection.supports_primary_key? && (model.connection.primary_key(reflection.options[:join_table]) rescue false)
- raise ActiveRecord::HasAndBelongsToManyAssociationWithPrimaryKeyError.new(reflection)
- end
end
# Generates a join table name from two provided table names.
View
9 activerecord/test/cases/associations/habtm_join_table_test.rb
@@ -33,12 +33,11 @@ def teardown
ActiveRecord::Base.connection.drop_table :my_books_my_readers
end
- uses_transaction :test_should_raise_exception_when_join_table_has_a_primary_key
- def test_should_raise_exception_when_join_table_has_a_primary_key
+ uses_transaction :test_should_not_raise_exception_when_join_table_has_a_primary_key
+ def test_should_not_raise_exception_when_join_table_has_a_primary_key
if ActiveRecord::Base.connection.supports_primary_key?
- assert_raise ActiveRecord::HasAndBelongsToManyAssociationWithPrimaryKeyError do
- MyReader.has_and_belongs_to_many :my_books
- end
+ # This test is to confirm that this feature is now gone
+ assert MyReader.has_and_belongs_to_many(:my_books).is_a?(ActiveRecord::Reflection::AssociationReflection)
end
end
end
Please sign in to comment.
Something went wrong with that request. Please try again.