Я пытаюсь настроить кэширование моделей и фрагментов в Rails 5.2.1.
Я добился успеха с кэшированием фрагментов, но я все еще вижу запросы к базе данных после реализации кэширования модели для моей модели.
Я включил кэширование разработки
$ 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 %>
app/views/languages/_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)
Почему я все еще вижу запросы к базе данных с каждым запросом?