From 825342914dd585c7204d16d657f31a4112b76fcb Mon Sep 17 00:00:00 2001 From: Neal Chambers Date: Thu, 24 Aug 2023 00:04:28 +0900 Subject: [PATCH] Fix Rails/HasManyOrHasOneDependent with nullify --- app/models/spree/address.rb | 2 +- app/models/spree/credit_card.rb | 2 +- app/models/spree/payment.rb | 2 +- app/models/spree/return_authorization.rb | 4 ++-- app/models/spree/shipping_category.rb | 2 +- app/models/spree/taxonomy.rb | 2 +- app/models/spree/user.rb | 4 ++-- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/models/spree/address.rb b/app/models/spree/address.rb index 703babb4ee..6ff007e62d 100644 --- a/app/models/spree/address.rb +++ b/app/models/spree/address.rb @@ -13,7 +13,7 @@ module Spree belongs_to :state, class_name: "Spree::State" has_one :enterprise, dependent: :restrict_with_exception - has_many :shipments + has_many :shipments, dependent: :nullify validates :address1, :city, :country, :phone, presence: true validates :company, presence: true, unless: -> { first_name.blank? || last_name.blank? } diff --git a/app/models/spree/credit_card.rb b/app/models/spree/credit_card.rb index 529f657014..c4ec4f0967 100644 --- a/app/models/spree/credit_card.rb +++ b/app/models/spree/credit_card.rb @@ -7,7 +7,7 @@ module Spree belongs_to :payment_method belongs_to :user - has_many :payments, as: :source + has_many :payments, as: :source, dependent: :nullify before_save :set_last_digits diff --git a/app/models/spree/payment.rb b/app/models/spree/payment.rb index 51d19d72ad..4bb1bd7304 100644 --- a/app/models/spree/payment.rb +++ b/app/models/spree/payment.rb @@ -21,7 +21,7 @@ module Spree belongs_to :payment_method, class_name: 'Spree::PaymentMethod' has_many :offsets, -> { where("source_type = 'Spree::Payment' AND amount < 0").completed }, - class_name: "Spree::Payment", foreign_key: :source_id + class_name: "Spree::Payment", foreign_key: :source_id, dependent: :nullify has_many :log_entries, as: :source, dependent: :destroy has_one :adjustment, as: :adjustable, dependent: :destroy diff --git a/app/models/spree/return_authorization.rb b/app/models/spree/return_authorization.rb index 61a9e219ae..69858ccf48 100644 --- a/app/models/spree/return_authorization.rb +++ b/app/models/spree/return_authorization.rb @@ -8,8 +8,8 @@ module Spree belongs_to :order, class_name: 'Spree::Order', inverse_of: :return_authorizations - has_many :inventory_units, inverse_of: :return_authorization - has_one :stock_location + has_many :inventory_units, inverse_of: :return_authorization, dependent: :nullify + has_one :stock_location, dependent: :nullify before_save :force_positive_amount before_create :generate_number diff --git a/app/models/spree/shipping_category.rb b/app/models/spree/shipping_category.rb index 4f452ee95c..deec192c8f 100644 --- a/app/models/spree/shipping_category.rb +++ b/app/models/spree/shipping_category.rb @@ -3,7 +3,7 @@ module Spree class ShippingCategory < ApplicationRecord validates :name, presence: true - has_many :products + has_many :products, dependent: :nullify has_many :shipping_method_categories, inverse_of: :shipping_method, dependent: :destroy has_many :shipping_methods, through: :shipping_method_categories end diff --git a/app/models/spree/taxonomy.rb b/app/models/spree/taxonomy.rb index 50778e37cf..a8600caa27 100644 --- a/app/models/spree/taxonomy.rb +++ b/app/models/spree/taxonomy.rb @@ -4,7 +4,7 @@ module Spree class Taxonomy < ApplicationRecord validates :name, presence: true - has_many :taxons + has_many :taxons, dependent: :nullify has_one :root, -> { where parent_id: nil }, class_name: "Spree::Taxon", dependent: :destroy after_save :set_name diff --git a/app/models/spree/user.rb b/app/models/spree/user.rb index f00b3c758b..38b2e94580 100644 --- a/app/models/spree/user.rb +++ b/app/models/spree/user.rb @@ -33,9 +33,9 @@ module Spree has_many :enterprise_roles, dependent: :destroy has_many :enterprises, through: :enterprise_roles has_many :owned_enterprises, class_name: 'Enterprise', - foreign_key: :owner_id, inverse_of: :owner + foreign_key: :owner_id, inverse_of: :owner, dependent: :nullify has_many :owned_groups, class_name: 'EnterpriseGroup', - foreign_key: :owner_id, inverse_of: :owner + foreign_key: :owner_id, inverse_of: :owner, dependent: :nullify has_many :customers, dependent: :destroy has_many :credit_cards, dependent: :destroy has_many :report_rendering_options, class_name: "::ReportRenderingOptions", dependent: :destroy