aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorRick Olson <technoweenie@gmail.com>2008-01-11 19:54:19 +0000
committerRick Olson <technoweenie@gmail.com>2008-01-11 19:54:19 +0000
commitebfd03b938d2cb996bc5786768e339b7221a724d (patch)
tree7e7bdf0b6fc537f9421afe171af22aab79baac6c /activerecord
parent5d1a305f066daf5a60b2b1158d5d2aeae6fe32cb (diff)
downloadrails-ebfd03b938d2cb996bc5786768e339b7221a724d.tar.gz
rails-ebfd03b938d2cb996bc5786768e339b7221a724d.tar.bz2
rails-ebfd03b938d2cb996bc5786768e339b7221a724d.zip
Fix issue where Table#references doesn't pass a :null option to a *_type attribute for polymorphic associations. Closes #10753 [railsjitsu]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8627 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/CHANGELOG2
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb4
-rw-r--r--activerecord/test/migration_test.rb8
3 files changed, 11 insertions, 3 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG
index 773e4ce90e..d3b5a38ec8 100644
--- a/activerecord/CHANGELOG
+++ b/activerecord/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Fix issue where Table#references doesn't pass a :null option to a *_type attribute for polymorphic associations. Closes #10753 [railsjitsu]
+
* Fixtures: removed support for the ancient pre-YAML file format. #10736 [John Barnette]
* More thoroughly quote table names. #10698 [dimdenis, lotswholetime, Jeremy Kemper]
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
index 79b66be8ef..8b2f3ad5d4 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
@@ -453,9 +453,7 @@ module ActiveRecord
polymorphic = options.delete(:polymorphic)
args.each do |col|
column("#{col}_id", :integer, options)
- unless polymorphic.nil?
- column("#{col}_type", :string, polymorphic.is_a?(Hash) ? polymorphic : {})
- end
+ column("#{col}_type", :string, polymorphic.is_a?(Hash) ? polymorphic : options) unless polymorphic.nil?
end
end
alias :belongs_to :references
diff --git a/activerecord/test/migration_test.rb b/activerecord/test/migration_test.rb
index 3b74604c44..f2683f3aef 100644
--- a/activerecord/test/migration_test.rb
+++ b/activerecord/test/migration_test.rb
@@ -925,6 +925,14 @@ if ActiveRecord::Base.connection.supports_migrations?
end
end
+ def test_references_column_type_with_polymorphic_and_options_null_is_false_adds_table_flag
+ with_new_table do |t|
+ t.expects(:column).with('taggable_type', :string, {:null => false})
+ t.expects(:column).with('taggable_id', :integer, {:null => false})
+ t.references :taggable, :polymorphic => true, :null => false
+ end
+ end
+
def test_belongs_to_works_like_references
with_new_table do |t|
t.expects(:column).with('customer_id', :integer, {})