Есть ли способ уменьшить гем counter_culture при использовании column_names? - PullRequest
1 голос
/ 10 октября 2019

Мне нужно уменьшить счетчик активных пользователей в группе, на самом деле правильно увеличивается, когда новый пользователь переходит из неактивного в активное в группе. Но при переходе от активного к неактивному, а затем снова к активному счетчик активных пользователей становится еще одним.

Поэтому мне нужно уменьшить счетчик при переходе от активного к неактивному.

Дотеперь я попытался использовать параметр delta_magnitude, чтобы уменьшить его, но не сработал.

Вот так выглядит класс

class GroupUser < ApplicationRecord
    attr_accessor :send_challenge

    belongs_to :group
    belongs_to :user

    counter_culture :group, column_name: proc { |model| model.active? ? 'users_count' : nil },
                                   column_names: {
                                     ['group_users.active = ?', true] => 'users_count'
                                   }

Как вы можете видеть, я использую класс динамические имена столбцов

Вот что я пробовал до сих пор

class GroupUser < ApplicationRecord
    attr_accessor :send_challenge

    belongs_to :group
    belongs_to :user

    counter_culture :group, column_name: proc { |model| model.active? ? 'users_count' : nil },
                                   column_names: {
                                     ['group_users.active = ?', true] => 'users_count'
                                   },
                                   delta_magnitude: 1

Здесь я добавляю дельта-величину , пытаясь сделатьоно уменьшается, но не работает.

Есть ли способ выразить условие, чтобы уменьшить его?

1 Ответ

0 голосов
/ 17 октября 2019

В конце я просто уменьшаю его вручную в том же запросе, который меняется с активного на неактивный. Если кто-то знает правильный ответ, он будет полезен в следующий раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...