0

我正在将 Ahoy 与 Mongoid 商店一起使用。非常感谢任何建议!

我的问题是,为了提高效率,每次创建新的 ahoy 事件时,我都想更新元素计数,以便我可以执行按浏览量排序之类的操作。我的计划是使用像 after_create 这样的 mongoid 回调来在每次生成事件时更新计数器。就像是:

class Ahoy::Event

  after_create :update_pageviews

  def update_pageviews
    case self.name
    when 'Viewed post'
      p = Monologue::Post.find(properties[:post])
      p.pageviews = p.pageviews + 1
      p.save
    end
  end

但是,回调似乎从未被解雇。

  1. 有没有更好的方法来处理这个?实时提取计数对我来说太慢了,所以我需要将它存储在某个地方。
  2. 为什么回调没有触发?
4

1 回答 1

0

为遇到此问题的任何其他人更新。这个问题与 Ahoy 使用 BSON::Binary 类型而不是(Mongoid 当前使用的)BSON::ObjectId 有关。必须将我的 ID 转换为 mongodb 才能表现得愉快。

于 2016-10-08T02:01:27.793 回答