diff options
author | Rick Olson <technoweenie@gmail.com> | 2008-01-11 19:54:19 +0000 |
---|---|---|
committer | Rick Olson <technoweenie@gmail.com> | 2008-01-11 19:54:19 +0000 |
commit | ebfd03b938d2cb996bc5786768e339b7221a724d (patch) | |
tree | 7e7bdf0b6fc537f9421afe171af22aab79baac6c | |
parent | 5d1a305f066daf5a60b2b1158d5d2aeae6fe32cb (diff) | |
download | rails-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
-rw-r--r-- | activerecord/CHANGELOG | 2 | ||||
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb | 4 | ||||
-rw-r--r-- | activerecord/test/migration_test.rb | 8 |
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, {}) |