ruby on Rails 3.1 片段缓存

发布于 2024-12-15 14:17:36 字数 463 浏览 1 评论 0原文

我有一个应用程序,我想缓存页面的某些部分,并且我已经阅读了很多有关执行此操作的方法的信息。

我知道片段缓存是在我的项目中实现这一点的最佳方法,但我找不到一个简单的示例来学习如何实现它。

我想将片段缓存与autoexpire一起使用。

 <% cache(:action => 'recent', :action_suffix => 'all_products') do %>
      All available products:
      <% Product.all.each do |p| %>
        <%= link_to p.name, product_url(p) %>
      <% end %>
    <% end %>

在哪里设置自动过期?有什么例子吗?我该怎么做?

I have an app and I'd like to cache some parts of the page, and I have been reading a lot about the ways to do this.

I understand that fragment caching is the best way to do it on my project, but I can´t find a simple example to learn how to implement this.

I would like to use the fragment cache with autoexpire.

 <% cache(:action => 'recent', :action_suffix => 'all_products') do %>
      All available products:
      <% Product.all.each do |p| %>
        <%= link_to p.name, product_url(p) %>
      <% end %>
    <% end %>

Where do I set the autoexpire? any examples around? how can I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

肤浅与狂妄 2024-12-22 14:17:36

在你的产品模型中你可以做这样的事情

  after_save :expire_caches
  after_destroy :expire_caches

  # can't do this in a sweeper since there isn't a controller involved
  def expire_caches
      ActionController::Base.cache_store.delete_matched(%r{product\?for=\d+&fragment=products})

In your product model you can do something like this

  after_save :expire_caches
  after_destroy :expire_caches

  # can't do this in a sweeper since there isn't a controller involved
  def expire_caches
      ActionController::Base.cache_store.delete_matched(%r{product\?for=\d+&fragment=products})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文