检测某个操作是否缓存在 Rails 中的可能方法?

发布于 2024-12-01 00:31:57 字数 289 浏览 3 评论 0原文

使用 Rails 3,是否可以检测布局内部或 before_filter 来查看某个操作是否将被缓存以及该操作是否有缓存命中?

caches_index :something, :layout => false

例如(在 application.html.erb 内)

<%= yield %>
<% @is_cached == ... %>

是否可以在对该项目的屈服调用之前和/或之后执行此操作?

Using Rails 3, is it possible to detect to see inside of the layout or a before_filter to see if an action is going to be cached and if there is a cache hit for that action?

caches_index :something, :layout => false

So for example (inside application.html.erb)

<%= yield %>
<% @is_cached == ... %>

Is it possible to do it before and/or after yield call to the item?

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

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

发布评论

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

评论(1

枕花眠 2024-12-08 00:31:58

我以这种方式使用片段缓存:

  #helper
  def cache_unless(condition, name = {}, &block)
    unless condition
      cache(name, &block)
    else
      yield
    end
  end


  #view
  <% cache_unless has_permission?, :action => :index, :folder => @folder, :user_id => @user.id do %>
  ...
  <% end %>

I'm using fragment caching this way:

  #helper
  def cache_unless(condition, name = {}, &block)
    unless condition
      cache(name, &block)
    else
      yield
    end
  end


  #view
  <% cache_unless has_permission?, :action => :index, :folder => @folder, :user_id => @user.id do %>
  ...
  <% end %>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文