我有一個用戶模型和一個PullRequest模型跟蹤Github拉請求。我的用戶模型有:軌道計數器緩存更新記錄更新2
has_many :pull_requests_as_creator, class_name:'PullRequest', foreign_key: 'creator_id', dependent: :destroy has_many :pull_requests_as_merger, class_name:'PullRequest', foreign_key: 'merger_id', dependent: :destroy
和我PullRequest模型有:
belongs_to :creator, class_name: 'User', counter_cache: :pull_requests_created_count
belongs_to :merger, class_name: 'User', counter_cache: :pull_requests_merged_count
如果我先加不merger_id那麼它的罰款,創作者Count獲取由1更新pull請求 - 但如果拉取請求被合併,記錄被merger_id更新並且它的計數跳躍2(創建者計數保持原樣) - 如果我添加最初有合併和創建者的拉請求,則兩者都會增加1一切都很好。
什麼可能導致此問題?我已經嘗試添加一個before_save:回調,首先將計數器減1(我寧願不必這樣做!),但這根本不起作用。