rails: actionpack-action_caching(页面缓存-rails4已经废弃)

actionpack-action_caching 是一个用于 Rails 应用程序的缓存解决方案,主要用于提高性能。它通过在控制器层面上缓存 HTTP 响应,减少不必要的计算和数据库查询。

01 打开配置

必须确保在 config/environments/production.rbconfig/environments/development.rb 文件中将 config.action_controller.perform_caching 设置为 true

这样才能启用 Rails 的缓存机制,使得你的缓存设置生效。

# config/environments/production.rb
Rails.application.configure do
  # 其他配置...

  config.action_controller.perform_caching = true

  # 其他配置...
end

确保缓存存储机制(如 MemoryStore、FileStore 或 Redis 等)也正确配置,这样才能有效利用缓存。这样就可以在控制器中使用缓存功能了!

02 安装 rails

在你的 Rails 项目中,首先需要添加 gem 到 Gemfile

gem 'actionpack-action_caching'

安装 bundle install

03 添加 controller/model

创建 controller/model

# controller
rails generate controller Posts index show

# 添加 model
rails g model Post title:string body:text

04 posts 的 views 页面

views/posts/index.html.erb 内容

<h1>Posts#index</h1>
<p>Find me in app/views/posts/index.html.erb</p>

<% @posts.each do |post| %>
  <h3><%= post.title %></h3>
  <p><%= post.body %></p>
<% end %>

05 添加 routes

编辑路由 routes.rb

Rails.application.routes.draw do
  resources :posts , only: [:index, :show]
end

06 配置 controller

配置 controller,10s之后过期

class PostsController < ApplicationController
  # include ActionCaching::ActionCaching
  caches_action :index, :show, expires_in: 10.seconds

  def index
    @posts = Post.all
  end

  def show
    @post = Post.find(params[:id])
  end
end
actions cache 也使用了 redis 
rails action cache