在哪里存储所有记录的总数?

Tin*_*n81 0 ruby activerecord ruby-on-rails

在我的Rails项目管理应用程序的主页上,我想展示projects使用该应用程序创建的所有内容的总和.

这很容易实现.现在,我正在做:

<p>Total projects: <%= Project.count %></p>
Run Code Online (Sandbox Code Playgroud)

但是,我不喜欢每次用户查看主页时数据库都被点击的事实.

是否有更有效的方式来存储项目总数,例如在变量或文件中?

顺便说一句,计数不需要过于精确.我只想将它用于营销目的.

谢谢你的帮助.

apn*_*ing 10

你的应用程序控制器:

def project_count
  Rails.cache.fetch('project_count') {  Project.count }
end

helper_method :project_count
Run Code Online (Sandbox Code Playgroud)

在你看来:

<%= project_count %>
Run Code Online (Sandbox Code Playgroud)

检查doc for expiration等

  • 您可能希望在某些时候处理缓存失效,或使用`expires_in`选项. (3认同)