diff --git a/app/models/exchange.rb b/app/models/exchange.rb index a315ccd1c6..2522d5622d 100644 --- a/app/models/exchange.rb +++ b/app/models/exchange.rb @@ -86,9 +86,9 @@ class Exchange < ApplicationRecord exchange = dup exchange.order_cycle = new_order_cycle exchange.enterprise_fee_ids = enterprise_fee_ids - exchange.variant_ids = variant_ids exchange.tag_ids = tag_ids exchange.save! + clone_all_exchange_variants(exchange.id) exchange end @@ -105,4 +105,14 @@ class Exchange < ApplicationRecord receiver.touch_later end + + private + + def clone_all_exchange_variants(exchange_id) + return unless variant_ids.any? + + ExchangeVariant.insert_all( + variant_ids.map{ |variant_id| { variant_id: variant_id, exchange_id: exchange_id } } + ) + end end