1

ビューにフラグメントキャッシュを実装しました。より具体的にはコメントセクション。次のようになります。

<% cache "video_#{@video.id}_comments" do %>
  <div id="comments">

    <%= render :partial => 'artists/videos/comments/comments' %>

  </div>
<% end %>

コメントコントローラーで、アクションを作成します。

  ....
  if @comment.save
    expire_fragment("#{@comment.commentable.class.to_s.downcase}_#{@comment.commentable.id}_comments")

開発中、新しいコメントが作成されたとき。キャッシュの有効期限が切れており、ページをリロードすると、新しいコメントが正常に表示されます。

Herokuでは、そうではありません。memcacheを使用する必要があるためですか?それとも私は他の場所で何か間違ったことをしていますか?

4

1 に答える 1

3

ただのアイデア。試してみてください:

Rails.cache.delete("views/"#{@comment.commentable.class.to_s.downcase}_#{@comment.commentable.id}_comments")

Expire_fragmentの代わりに

また、herokuでキャッシュストアを使用することを強くお勧めします。それ以外の場合、デフォルトは、dynoに対してローカルであり、他のdynoには表示されないメモリストアです。また、アプリケーションのメモリはまもなく使い果たされます。また、Herokuが提供するdalliストアは超高速です。このドキュメントを参照してください

于 2012-05-09T11:18:52.823 に答える