私はレール4のアプリケーションを持っていて、キャッシュを実装しようとしています。新しいユーザーが作成されたかどうかを確認するために@profiles_sidebar.first
キャッシュキーを使用します。私はこれがOKであるかどうかは分かりませんが、それでもdbクエリがあるからです。キャッシュを期限切れにする必要があるかどうかを確認するには、この方法が適していますか?私はうまくいくのですか?クエリをキャッシュした後のrails4がまだ実行されています
<% 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 %>
コンソールコードキャッシュ読み:あなたは、ダイジェストが作成されてから、レコードが更新されているかどうかを知る必要があるので、周りの少なくとも1つのデータベースクエリを取得する方法はありません
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)
最大、おかげでこのラインを持っていることを確認します(デフォルトでは、DEVのENV無効になっています)。私はまだいくつかのものについてはわからないので、もう1つの質問を作成します。 –
キャッシュキーに名前を付けることに関して新しいものがあります:http://stackoverflow.com/questions/36336322/rails4-caching-naming-conventions –