我读过关于关联的计数器缓存。
有没有一种方法可以在某些条件下轻松实现计数器缓存(通过一个可以完成繁重工作的 gem)?例如:
通常一个计数器缓存是
class User
has_many :messages
class Message
belongs_to :user, counter_cache: true
但是,假设我不想计算有多少消息,而是要计算来自 Joe 的所有消息中的字符总数
所以可以说我有一个方法count_chars_from(user)
可以返回用户的字符数
我想在系统中发生很多事情时更新特定列(当 joe 向几个人发送消息时 - 所有这些用户都需要更新,当 joe 将消息编辑给一个人时,等等)
我猜这可以通过观察者来完成,但我看到自己很快就创建了丑陋的代码。
有没有办法得到类似上面的东西?