У меня есть два counter_cache, один для общего числа campaign_codes
и один только при использовании campaign_code
- campaign_codes.where(state: 'used')
. Чтобы обновить общее число campaign_codes
в rails c
, я использовал такой скрипт, как:
CreditCampaign.reset_counters(CreditCampaign.first.id, :campaign_codes)
, но это работает только для общего числа кодов кампании. Как настроить скрипт в консоли для используемой кампании?
CampaignCode
модель
class CampaignCode < ApplicationRecord
belongs_to :credit_campaign, counter_cache: :total_campaign_codes_amount
belongs_to :used_credit_campaign, -> { where(state: 'used') }, class_name: 'CampaignCode', counter_cache: :used_campaign_codes_amount, optional: true
end
CreditCampaign
модель
class CreditCampaign < ApplicationRecord
has_many :campaign_codes
end