aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2018-01-23 04:28:29 +0900
committerRyuta Kamizono <kamipo@gmail.com>2018-01-23 05:23:32 +0900
commit7ca3ab415d409ba39b07ff5a96da06d68098069b (patch)
treecb50749844fa959353f92f88124a3f4e1967c351 /activerecord/test
parentc177bca26cbc08f8dfb1e3a68613a89e6a035783 (diff)
downloadrails-7ca3ab415d409ba39b07ff5a96da06d68098069b.tar.gz
rails-7ca3ab415d409ba39b07ff5a96da06d68098069b.tar.bz2
rails-7ca3ab415d409ba39b07ff5a96da06d68098069b.zip
Fix building has_one through record
Fixes #31762.
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/associations/has_one_through_associations_test.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/has_one_through_associations_test.rb b/activerecord/test/cases/associations/has_one_through_associations_test.rb
index 1d37457464..8bbd4134fa 100644
--- a/activerecord/test/cases/associations/has_one_through_associations_test.rb
+++ b/activerecord/test/cases/associations/has_one_through_associations_test.rb
@@ -42,6 +42,18 @@ class HasOneThroughAssociationsTest < ActiveRecord::TestCase
assert_not_nil new_member.club
end
+ def test_creating_association_builds_through_record
+ new_member = Member.create(name: "Chris")
+ new_club = new_member.association(:club).build
+ assert new_member.current_membership
+ assert_equal new_club, new_member.club
+ assert new_club.new_record?
+ assert new_member.current_membership.new_record?
+ assert new_member.save
+ assert new_club.persisted?
+ assert new_member.current_membership.persisted?
+ end
+
def test_creating_association_builds_through_record_for_new
new_member = Member.new(name: "Jane")
new_member.club = clubs(:moustache_club)