I've two counter_cache, one for total number of campaign_codes and one only when campaign_code was used - campaign_codes.where(state: 'used'). To update total number of campaign_codes in the rails c I used script like:
CreditCampaign.reset_counters(CreditCampaign.first.id, :campaign_codes)
but this works only for total number of campaign_codes. How to setup the script in console for used campaign?
CampaignCode model
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 model
class CreditCampaign < ApplicationRecord
has_many :campaign_codes
end