【问题标题】:Can Rails' Fragment Caching be used without reference to persistent objects?Rails 的 Fragment Caching 可以在不引用持久对象的情况下使用吗?
【发布时间】:2015-02-01 16:42:42
【问题描述】:

我正在从事的项目是一个控制台风格的应用程序,根本无法访问任何持久对象。我们所有的模型都是扩展 Hashie::Mash 的瞬态对象,并通过访问各种 API 调用动态填充。

我正在研究Rails fragment caching,这些示例暗示片段缓存机制依赖于持久化的模型。

我正在寻找不采用持久模型的片段缓存示例。

【问题讨论】:

    标签: ruby-on-rails caching transient fragment-caching


    【解决方案1】:

    是的,Rails 片段缓存可以缓存任何旧的任意东西。你只需要指定一个键。例如,文档中的这个例子:

    <% cache('all_available_products') do %>
      All available products:
    <% end %>
    

    您遇到的问题是 Rails 不会智能地破坏该缓存,因为就它而言,内部的数据是静态的,并且会永久存在。因此,再次从文档中,您必须手动破坏缓存:

    expire_fragment('all_available_products')
    

    现在,您的问题的确切解决方案取决于您的用例。如果 API 调用响应或类似的东西有所不同,也许你可以破坏缓存。但是,要回答您的问题,是的,在没有持久模型的情况下使用它是完全可以的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 2010-12-25
      相关资源
      最近更新 更多