aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorMichael Koziarski <michael@koziarski.com>2007-10-10 06:45:13 +0000
committerMichael Koziarski <michael@koziarski.com>2007-10-10 06:45:13 +0000
commit1c881ca5bfc36689b4918edf497b38d24df7b57e (patch)
treed2b70c2ea0ffeafb40d194129e9cdee8f2bd2481 /activerecord/test
parent4db4661a67529d6238ed255cd51d42d6f68306e1 (diff)
downloadrails-1c881ca5bfc36689b4918edf497b38d24df7b57e.tar.gz
rails-1c881ca5bfc36689b4918edf497b38d24df7b57e.tar.bz2
rails-1c881ca5bfc36689b4918edf497b38d24df7b57e.zip
Ensure that 'autosaving' works when associations aren't loaded [Bryan Helmkamp] References #8713
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7824 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test')
-rwxr-xr-xactiverecord/test/associations_test.rb4
-rw-r--r--activerecord/test/fixtures/db_definitions/schema.rb5
-rw-r--r--activerecord/test/fixtures/developer.rb10
3 files changed, 19 insertions, 0 deletions
diff --git a/activerecord/test/associations_test.rb b/activerecord/test/associations_test.rb
index 37e26ef80a..9e4d0f2711 100755
--- a/activerecord/test/associations_test.rb
+++ b/activerecord/test/associations_test.rb
@@ -101,6 +101,10 @@ class AssociationProxyTest < Test::Unit::TestCase
assert !david.projects.loaded?
end
+ def test_save_on_parent_saves_children
+ developer = Developer.create :name => "Bryan", :salary => 50_000
+ assert_equal 1, developer.reload.audit_logs.size
+ end
end
class HasOneAssociationsTest < Test::Unit::TestCase
diff --git a/activerecord/test/fixtures/db_definitions/schema.rb b/activerecord/test/fixtures/db_definitions/schema.rb
index cdebcbbe5f..52cd9f36f0 100644
--- a/activerecord/test/fixtures/db_definitions/schema.rb
+++ b/activerecord/test/fixtures/db_definitions/schema.rb
@@ -75,4 +75,9 @@ ActiveRecord::Schema.define do
t.column :real_number, :real
end
end
+
+ create_table :audit_logs, :force => true do |t|
+ t.column :message, :string, :null=>false
+ t.column :developer_id, :integer, :null=>false
+ end
end
diff --git a/activerecord/test/fixtures/developer.rb b/activerecord/test/fixtures/developer.rb
index c868cddecd..20005ed04e 100644
--- a/activerecord/test/fixtures/developer.rb
+++ b/activerecord/test/fixtures/developer.rb
@@ -41,8 +41,18 @@ class Developer < ActiveRecord::Base
has_and_belongs_to_many :special_projects, :join_table => 'developers_projects', :association_foreign_key => 'project_id'
+ has_many :audit_logs
+
validates_inclusion_of :salary, :in => 50000..200000
validates_length_of :name, :within => 3..20
+
+ before_create do |developer|
+ developer.audit_logs.build :message => "Computer created"
+ end
+end
+
+class AuditLog < ActiveRecord::Base
+ belongs_to :developer
end
DeveloperSalary = Struct.new(:amount)