0

Rails 5.2.1 でモデルとフラグメントのキャッシングをセットアップしようとしています。

Fragment キャッシングで成功しましたが、モデルにモデル キャッシングを実装した後もデータベース クエリが表示されます。

開発キャッシュを有効にしました

$ rails dev:cache

モデル ヘルパー

module LanguagesHelper
  def approved_languages
    Rails.cache.fetch("approved_languages") { Languages.is_active.is_approved }
  end
end

コントローラ

class LanguagesController < ApplicationController
  include LanguagesHelper

  def index
    @languages = approved_languages
  end
end

ビュー

アプリ/ビュー/言語/index.html.erb

<%= render partial: 'languages/language', collection: @languages, cached: true %>

アプリ/ビュー/言語/_language.html.erb

<% cache language do %>
  <%= language.name %>
<% end %>

コンソール

Started GET "/languages" for 127.0.0.1 at 2018-08-21 14:13:29 -0400
Processing by LanguagesController#index as HTML
  Rendering languages/index.html.erb within layouts/application
  Language Load (1.2ms)  SELECT "languages".* FROM "languages" WHERE "languages"."deleted" = $1 AND "languages"."approved" = $2  [["deleted", false], ["approved", true]]
  ↳ app/views/languages/index.html.erb:4
  Rendered collection of languages/_language.html.erb [1 / 1 cache hits] (3.0ms)
  Rendered languages/index.html.erb within layouts/application (10.9ms)
Completed 200 OK in 50ms (Views: 46.2ms | ActiveRecord: 1.2ms)

各リクエストでデータベース クエリがまだ表示されるのはなぜですか?

4

2 に答える 2