我在视图上实现了片段缓存。更具体地说,在评论部分。它看起来像:
<% 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吗?或者我在其他地方做错了什么?
答案 0 :(得分:3)
只是一个想法。你能尝试一下:
Rails.cache.delete("views/"#{@comment.commentable.class.to_s.downcase}_#{@comment.commentable.id}_comments")
代替expire_fragment
另外,我强烈建议在heroku中使用缓存存储。否则,默认值为内存存储,它是dyno的本地存储,对其他dynos不可见。此外,您的应用程序内存很快就会用完。此外,Heroku提供的dalli商店超级快。请参阅此doc