diff --git a/app/models/exchange.rb b/app/models/exchange.rb index 01e23405a5..282173e622 100644 --- a/app/models/exchange.rb +++ b/app/models/exchange.rb @@ -12,7 +12,7 @@ class Exchange < ActiveRecord::Base belongs_to :order_cycle belongs_to :sender, class_name: 'Enterprise' - belongs_to :receiver, class_name: 'Enterprise', touch: true + belongs_to :receiver, class_name: 'Enterprise' has_many :exchange_variants, dependent: :destroy has_many :variants, through: :exchange_variants @@ -23,6 +23,8 @@ class Exchange < ActiveRecord::Base validates :order_cycle, :sender, :receiver, presence: true validates :sender_id, uniqueness: { scope: [:order_cycle_id, :receiver_id, :incoming] } + after_save :touch_receiver + accepts_nested_attributes_for :variants scope :in_order_cycle, lambda { |order_cycle| where(order_cycle_id: order_cycle) } @@ -95,4 +97,10 @@ class Exchange < ActiveRecord::Base def participant incoming? ? sender : receiver end + + def touch_receiver + return unless receiver&.persisted? + + receiver.touch_later + end end