假设我们有一个Post
模型。
在视图的开头,我需要显示帖子的总数,通常是
@posts.size
稍后在视图中我需要显示所有帖子,通常是
@posts.each do |post|
end
这会导致两个查询。
如果我以相反的顺序完成查询,它会产生一个查询(大概是使用 CACHE)。
有没有什么“技巧”可以让我只用一个数据库查询就可以实现(第一个)提到的顺序?
假设我们有一个Post
模型。
在视图的开头,我需要显示帖子的总数,通常是
@posts.size
稍后在视图中我需要显示所有帖子,通常是
@posts.each do |post|
end
这会导致两个查询。
如果我以相反的顺序完成查询,它会产生一个查询(大概是使用 CACHE)。
有没有什么“技巧”可以让我只用一个数据库查询就可以实现(第一个)提到的顺序?
您可以使用例如#fragment-caching
<% cache 'posts_size' do %>
<%= @posts.size %>
<% end %>
然后在Post
创建 a 时,您可以使片段过期
expire_fragment 'posts_size'