From 04f6f787309f04576653ff9d32b2d294bd61ea1c Mon Sep 17 00:00:00 2001 From: Dylan Knutson Date: Fri, 18 Jul 2025 19:36:46 +0000 Subject: [PATCH] set associations on aux records --- spec/active_record/has_aux_table_spec.rb | 12 ++++++++++++ spec/spec_helper.rb | 1 - spec/spec_models.rb | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/spec/active_record/has_aux_table_spec.rb b/spec/active_record/has_aux_table_spec.rb index c30bbfb..17db2ef 100644 --- a/spec/active_record/has_aux_table_spec.rb +++ b/spec/active_record/has_aux_table_spec.rb @@ -99,6 +99,18 @@ RSpec.describe HasAuxTable do expect(lot.vehicles.first.name).to eq("vehicle1") end + it "can set association on aux record" do + driver = Driver.create!(name: "John Doe") + car = Car.create!(name: "Honda Civic") + driver.car = car + expect(driver.car).to eq(car) + expect(driver.car_id).to eq(car.id) + driver.save! + + driver = Driver.find(driver.id) + expect(driver.car).to eq(car) + end + describe "#changed?" do it "returns true if the main record changes" do car = Car.create!(name: "Honda Civic") diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 4be4a1a..e00bc0c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -90,7 +90,6 @@ module SpecHelper t.create_aux :driver do |t| t.integer :license_number t.references :car, - null: false, foreign_key: { to_table: :vehicles_car_aux, primary_key: :base_table_id diff --git a/spec/spec_models.rb b/spec/spec_models.rb index ae6dbe9..3bc7dfd 100644 --- a/spec/spec_models.rb +++ b/spec/spec_models.rb @@ -28,7 +28,7 @@ end class Driver < Person aux_table :driver - belongs_to :car, inverse_of: :drivers + belongs_to :car, optional: true end class Captain < Person