From 91d0dabc1d43f544700dc5e6e7f1e307f08e1d8d Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Tue, 16 May 2023 15:49:03 +1000 Subject: [PATCH] Require associations on DistributorShippingMethod --- app/models/distributor_shipping_method.rb | 2 ++ app/models/enterprise.rb | 3 ++- ...hod_and_distributor_on_distributor_shipping_methods.rb | 8 ++++++++ db/schema.rb | 4 ++-- 4 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20230516054745_require_shipping_method_and_distributor_on_distributor_shipping_methods.rb diff --git a/app/models/distributor_shipping_method.rb b/app/models/distributor_shipping_method.rb index ebce5682bc..bb09eaec5f 100644 --- a/app/models/distributor_shipping_method.rb +++ b/app/models/distributor_shipping_method.rb @@ -2,6 +2,8 @@ class DistributorShippingMethod < ApplicationRecord self.table_name = "distributors_shipping_methods" + self.belongs_to_required_by_default = true + belongs_to :shipping_method, class_name: "Spree::ShippingMethod", touch: true belongs_to :distributor, class_name: "Enterprise", touch: true end diff --git a/app/models/enterprise.rb b/app/models/enterprise.rb index 29b9422667..9b74a711a5 100644 --- a/app/models/enterprise.rb +++ b/app/models/enterprise.rb @@ -63,7 +63,8 @@ class Enterprise < ApplicationRecord inverse_of: :owned_enterprises has_many :distributor_payment_methods, inverse_of: :distributor, foreign_key: :distributor_id - has_many :distributor_shipping_methods, foreign_key: :distributor_id + has_many :distributor_shipping_methods, + inverse_of: :distributor, foreign_key: :distributor_id has_many :payment_methods, through: :distributor_payment_methods has_many :shipping_methods, through: :distributor_shipping_methods has_many :customers diff --git a/db/migrate/20230516054745_require_shipping_method_and_distributor_on_distributor_shipping_methods.rb b/db/migrate/20230516054745_require_shipping_method_and_distributor_on_distributor_shipping_methods.rb new file mode 100644 index 0000000000..0a55501242 --- /dev/null +++ b/db/migrate/20230516054745_require_shipping_method_and_distributor_on_distributor_shipping_methods.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +class RequireShippingMethodAndDistributorOnDistributorShippingMethods < ActiveRecord::Migration[7.0] + def change + change_column_null :distributors_shipping_methods, :shipping_method_id, false + change_column_null :distributors_shipping_methods, :distributor_id, false + end +end diff --git a/db/schema.rb b/db/schema.rb index dff9670a09..71537c92ce 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -125,8 +125,8 @@ ActiveRecord::Schema[7.0].define(version: 2023_05_22_120633) do end create_table "distributors_shipping_methods", id: :serial, force: :cascade do |t| - t.integer "distributor_id" - t.integer "shipping_method_id" + t.integer "distributor_id", null: false + t.integer "shipping_method_id", null: false t.datetime "created_at", precision: nil, null: false t.datetime "updated_at", precision: nil, null: false t.index ["distributor_id"], name: "index_distributors_shipping_methods_on_distributor_id"