大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 缓存特定的部分轨道3.0.x.,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
>问题1:如何缓存特定的部分(不打击
D b) ?
>问题2:更新时如何删除(过期)缓存内容
书籍模型?
<ul> <% @books.each do |book| %> <li><%= book.name %></li> <% end %> </ul>
要为此位启用缓存,只需将其包装在缓存中:
<% cache do %> <ul> <% @books.each do |book| %> <li><%= book.name %></li> <% end %> </ul> <% end %>
当然,这并没有命名缓存或做任何特别的事情……虽然Rails会自动选择这个缓存片段的唯一名称,但它不会真正有用.我们可以做得更好.让我们使用DHH的key-based cache expiration技术,并为缓存提供与其内容相关的名称.
<% cache ['book-list',*@books] do %> <ul> <% @books.each do |book| %> <li><%= book.name %></li> <% end %> </ul> <% end %>
将参数传递到缓存中会根据提供的参数构建缓存键.字符串直接传入 – 因此,在这里,缓存将始终以“book-list”开头.这是为了防止缓存与其他可能缓存相同内容但具有不同视图的位置发生冲突.对于@books数组的每个成员,Rails将调用cache_key:对于ActiveRecord对象,这将产生一个由其模型ID组成的字符串,而且最重要的是,最后一次更新对象.
这意味着当您更新对象时,此片段的缓存键将更改.换句话说,它会自动过期 – 当书籍更新时,此缓存语句将搜索不存在的键,认为它不存在,并用新内容填充它.旧的,陈旧的内容将在您的缓存存储中停留,直到被内存或年龄限制驱逐(memcached会自动执行此操作).
我在许多生产应用程序中使用此技术,它的工作非常好.有关更多信息,请查看37signals post,有关Rails中的常规缓存信息,请参阅Ruby on Rails caching guide.
以上是大佬教程为你收集整理的ruby-on-rails – 缓存特定的部分轨道3.0.x.全部内容,希望文章能够帮你解决ruby-on-rails – 缓存特定的部分轨道3.0.x.所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。