【发布时间】:2011-01-20 19:10:00
【问题描述】:
我正试图找出一种方法来消除一堆看似不必要的查询。情况如下。
模型帖子有_很多评论
SQL (0.1ms) SELECT COUNT(*) FROM "cmets" WHERE ("cmets".post_id = 5)
缓存(0.0ms)从“cmets”WHERE(“cmets”.post_id = 5)中选择计数(*)
缓存(0.0ms)从“cmets”WHERE(“cmets”.post_id = 5)中选择计数(*)
CACHE (0.0ms) SELECT COUNT(*) FROM "cmets" WHERE ("cmets".post_id = 5)
所以我不确定为什么这些正在运行,但在我看来,我正在检查每个帖子是否有 cmets
<% if post.comments.count > 0 %> <!-- tried count, size, blank? -->
<table class="list">
<% post.comments.each do |animal| %>
<tr><!-- stuff here --></tr>
<% end %>
</table>
<% else %>
<h3>No comments</h3>
<% end %>
如果有更好的方法来做这个检查,我会全力以赴。我查看了 counter_cache,但看起来它仅适用于 belongs_to 关系,而且我正在使用子域,所以不确定 counter_cache 是否适合我。
欢迎提出建议
【问题讨论】:
标签: ruby-on-rails-3