2

私はRails 3.2を使用しており、ビューコードが変更されたときにキャッシュエントリを無効にする信頼できる方法を探しています。この記事では、ビュー コードが変更されるたびに変更されるバージョン文字列を 37signals がキャッシュ キーの前に付けていることがわかります。

たとえば、私がに変更All my...した場合My...

<%= cache ["v1", project] do %>
  <p>All my todo lists:</p>
  [...]
<% end %>

v1に変更して、キャッシュエントリが無効になっていることを確認しますv2

<%= cache ["v2", project] do %>
  <p>My todo lists:</p>
  [...]
<% end %>

これを達成するためのより信頼できる方法はありますか?vXキャッシュされたブロック内から呼び出された部分コードまたはヘルパー コードを変更するときに、これらの文字列プレフィックスを更新するのを忘れてしまうのではないかと心配しています。

4

3 に答える 3

1

cache_digestを使用できます。ビューが変更されると、キャッシュフラグメントが自動的に無効になります。これにより、各ビュー バージョンを手動で追跡する必要がなくなります。

于 2013-05-13T11:18:15.307 に答える
-1
<%= cahe ['todo', project] do %>
.
.

そしてコントローラーでは、更新後

def update
.
.
if @project.update_attributes(params[:project)
  expire_fragment ['todo', @project] 
  render 'something'

私のシステムでは、ログで確認できます。
フラグメントビューの書き込み/ show / reports / 46-20121016112032(3.0ms)レポートの表示
次の応答
フラグメントビューの読み取り/ show / reports / 46-20121016112032(0.2ms)
end on report#update
Expireフラグメントビュー/表示/レポート/46-20121016064919(1.2ms)

于 2012-10-16T11:24:26.720 に答える