2016-12-22 2 views
1

Я создал модуль, в который включены мои активирующие записи, который поддерживает архивирование. Это позволяет мне переписывать архив! и разобрать! на этих объектах, чтобы обновить поле архива.нижний счетчик кеша при архивировании activerecord

Мне интересно, что я могу сделать, чтобы уменьшить счетчик кеша, который эти объекты выполняют, как это делается при уничтожении! вызывается команда.

Моя модель выглядит следующим образом ...

class Post < ActiveRecord::Base 
    include Archivable 

    belongs_to :user, counter_cache: :posts_count 
    validates_presence_of :user_id 
end 

Как уменьшаем столбец posts_count в модели пользователей каждый пост получает в архиве?

Благодаря

ответ

1

Я бы не сделать это вручную - вместо этого я бы создать archived сферу - и добавить новый кэш счетчик, который охватывает только не-архивировать записи - он будет следить за собой, что путь :)

Но, я думаю, что вы можете также вручную уменьшаете счетчик (в конце вашего метода архива), используя что-то вроде:

User.decrement_counter(:posts_count, user.id) 
+0

Спасибо человека. Можете ли вы указать мне в правильном направлении, насколько это возможно, для модификации существующих кешей-счетчиков для охвата определенной области? то есть. записи, которые были заархивированы помечены как ложные. большое спасибо – Walker

Смежные вопросы