From 99910dddf28faac31d6a3d4800460f1bc308bb83 Mon Sep 17 00:00:00 2001 From: Sam DeCesare Date: Mon, 9 Apr 2018 17:35:33 -0700 Subject: Fix .new with multiple through associations This fixes a bug with building an object that has multiple `has_many :through` associations through the same object. Previously, when building the object via .new, the intermediate object would be created instead of just being built. Here's an example: Given a GameBoard, that has_one Owner and Collection through Game. The following line would cause a game object to be created in the database. GameBoard.new(owner: some_owner, collection: some_collection) Whereas, if passing only one of those associations into `.new` would cause the Game object to be built and not created in the database. Now the above code will only build the Game object, and not save it. --- activerecord/test/models/game_board.rb | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 activerecord/test/models/game_board.rb (limited to 'activerecord/test/models/game_board.rb') diff --git a/activerecord/test/models/game_board.rb b/activerecord/test/models/game_board.rb new file mode 100644 index 0000000000..01d082eddb --- /dev/null +++ b/activerecord/test/models/game_board.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class GameBoard < ActiveRecord::Base + belongs_to :game + has_one :game_owner, through: :game + has_one :game_collection, through: :game +end -- cgit v1.2.3