【问题标题】:Rails: cache with substitutes?Rails:缓存有替代品?
【发布时间】:2014-05-16 09:03:33
【问题描述】:

我有一部分正在缓存,但其中一部分是动态的:

- cache @product do
  .product
    #.....
    .price = format_money(@product.money)

并且想把它变成这样的东西:

- cache_subst @product, {price: format_money(@product.money)} do
  .product
    #.....
    .price {{price}}

是否有一些宝石或方法可以做到这一点?

更新:

请不要建议以任何方式赚钱作为关键的一部分,这就是我们现在正在做的事情。

【问题讨论】:

  • 我假设money 方法的值来自某个关联模型?
  • money 返回货币对象,然后将其转换为查看者的货币

标签: ruby-on-rails ruby fragment-caching rack-cache


【解决方案1】:

由于缓存视图的可变性是货币,并且货币数量有限,我认为最好的策略是将货币添加到缓存键中:

- cache [@product, format_money(@product.money)] do
  .product
    #....
    .price = format_money(@product.money)

【讨论】:

  • 这就是我们现在正在做的事情,也是我们试图通过在模板中进行替换来避免的事情。
  • 为什么会有问题?
  • 它有效,但我们只是想避免它。缺点之一是,对于每种货币,它都会消耗更多的缓存,更重要的是货币兑换会发生变化,并且由于事物在不同时间缓存,缩略图可能会显示与产品/节目不同的价格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-13
  • 2013-02-16
  • 1970-01-01
  • 1970-01-01
  • 2017-02-19
相关资源
最近更新 更多