Ruby on rails 如何检查计数器缓存是否正常工作?
我已经按照Railscast()上的说明做了一切 我已经完成了这些设置Ruby on rails 如何检查计数器缓存是否正常工作?,ruby-on-rails,ruby-on-rails-3,counter-cache,Ruby On Rails,Ruby On Rails 3,Counter Cache,我已经按照Railscast()上的说明做了一切 我已经完成了这些设置 迁移以将新列“comments\u count”添加到“community\u topics”表中,该表是父表 我在models/comment.rb中添加了counter\u cache:true(现在就像这样属于:commentable,:polymorphic=>true,counter\u cache:true) 我认为这一点 你知道,我看不出它的外观有什么不同。 我如何知道计数器缓存现在是否工作正常?正如您参
- 迁移以将新列“comments\u count”添加到“community\u topics”表中,该表是父表
- 我在models/comment.rb中添加了counter\u cache:true(现在就像这样属于:commentable,:polymorphic=>true,counter\u cache:true)
我如何知道计数器缓存现在是否工作正常?正如您参考的RailsCast中所述,您应该通过检查日志中正在运行的SQL来进行验证。在计数器缓存之前,您应该获得SQL
计数
查询,如下所示:
SELECT count(*) AS count_all FROM "comment_threads" WHERE ("comment_threads".commentable_id = 61)
之后,您不应该看到一个,而应该只看到CommunityTopic加载:
SELECT * FROM "comment_threads" WHERE id = 61
谢谢你的回答。我正在development.log中查看日志,但是那里所有的sql命令看起来几乎相同。它包含COUNT,这意味着计数器缓存不工作。对吗?只有当
COUNT
查询是针对添加缓存的表的,并且父表上的计数器缓存存在并且有一个值时,我才知道了!!我在想,一旦你设置了计数器缓存,即使你输入了类似的内容,数字也会返回,但我应该输入正确的数字吗?@Foo-Nope,parent.children.size
应该可以工作。计数器缓存应该是无缝的。你认为它不能工作的原因是因为我使用了创建的多态子级吗自动通过gem'acts_as_commentable_with_threading'?如果我让它看起来工作正常,这有关系吗。