aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/attribute_methods_test.rb
diff options
context:
space:
mode:
authorSean Griffin <sean@thoughtbot.com>2014-06-26 09:36:40 -0600
committerSean Griffin <sean@thoughtbot.com>2014-06-26 09:43:35 -0600
commit3bc314e65830dabd7b1c47ad1fa27be5ace0699f (patch)
treea34a12dd12aca74f837f48bdfd125830e1766744 /activerecord/test/cases/attribute_methods_test.rb
parent031588ebe6b449bcba6e3becfaff6978ba10464a (diff)
downloadrails-3bc314e65830dabd7b1c47ad1fa27be5ace0699f.tar.gz
rails-3bc314e65830dabd7b1c47ad1fa27be5ace0699f.tar.bz2
rails-3bc314e65830dabd7b1c47ad1fa27be5ace0699f.zip
Move writing unknown column exception to null attribute
Making this change revealed several subtle bugs related to models with no primary key, and anonymous classes. These have been fixed as well, with regression tests added.
Diffstat (limited to 'activerecord/test/cases/attribute_methods_test.rb')
-rw-r--r--activerecord/test/cases/attribute_methods_test.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/activerecord/test/cases/attribute_methods_test.rb b/activerecord/test/cases/attribute_methods_test.rb
index 7566af920f..2048e0d5ad 100644
--- a/activerecord/test/cases/attribute_methods_test.rb
+++ b/activerecord/test/cases/attribute_methods_test.rb
@@ -253,6 +253,15 @@ class AttributeMethodsTest < ActiveRecord::TestCase
assert_equal @loaded_fixtures['computers']['workstation'].to_hash, Computer.first.attributes
end
+ def test_attributes_without_primary_key
+ klass = Class.new(ActiveRecord::Base) do
+ self.table_name = 'developers_projects'
+ end
+
+ assert_equal klass.column_names, klass.new.attributes.keys
+ assert_not klass.new.attributes.key?('id')
+ end
+
def test_hashes_not_mangled
new_topic = { :title => "New Topic" }
new_topic_values = { :title => "AnotherTopic" }