0

Rails 4 アプリがあり、キャッシュを実装しようとしています。@profiles_sidebar.first新しいユーザーが作成されたかどうかを確認するためにキャッシュキーを使用します。まだ db クエリがあるため、これで問題ないかどうかはわかりません。これは、キャッシュを期限切れにする必要があるかどうかを確認するための推奨メカニズムですか? 私はうまくやっていますか?

<% cache(@profiles_sidebar.first) do %>
  <% @profiles_sidebar.each do |profile| %>
    <%= link_to user_path(profile.user) do %>            
      <%= truncate(profile.full_name, length: 25) %>
      <%= truncate(profile.company, length:25) %>
    <% end %>
  <% end %>
<% end %>

キャッシュを読み取るときのコンソール コード:

13:31:53 puma.1    |   Profile Load (2.2ms)  SELECT  "profiles".* FROM "profiles"  ORDER BY "profiles"."created_at" DESC LIMIT 1
13:31:53 puma.1    |   User Load (2.2ms)  SELECT "users".* FROM "users" WHERE "users"."id" IN (67)
13:31:53 puma.1    |   Cache digest for app/views/users/_user_sidebar.html.erb: bfc9447057c94bcfe13c18e391127f2d
13:31:53 puma.1    | Read fragment views/profiles/62-20160331112332689423000/bfc9447057c94bcfe13c18e391127f2d (0.2ms)
13:31:53 puma.1    |   Rendered users/_user_sidebar.html.erb (11.8ms)
4

2 に答える 2

0

あなたは開発環境にいると思いますが、レールでキャッシュを有効にしていますか?? (デフォルトでは、dev 環境では無効になっています)

development.rb にこの行があることを確認してください

config.action_controller.perform_caching = true
于 2016-03-31T13:27:43.680 に答える