我有一个 Rails 应用程序,我想在其中使用计数器缓存,在实施到应用程序之前,我尝试在示例应用程序中检查它是如何工作的,并且效果很好。但我不能让它在我需要做的应用程序中工作。
两个应用程序的不同之处在于 create 是从与 counter_cache 一起使用的应用程序中的控制器调用的,而 create 是从应用程序上的工作人员调用的,而该应用程序不起作用。
那么我们是否需要仅从控制器创建记录才能使其正常工作,还是会出现其他错误?
请帮我。提前致谢。
代码示例
class Post < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :post, :counter_cache => true
end
在我的评论控制器中,我有
@comment = Comment.create(comment_params)
在我看来,我有
post.comments_count
上面的代码有效,而
Comment.create(comment_params)
在称为异步的 sidekiq 工作者中不起作用,即不会增加表中的计数。