使用嵌套模型进行Rails Fragment Caching

时间:2016-03-24 15:53:39

标签: ruby-on-rails caching

我对Fragment Caching的问题是,我需要执行俄罗斯娃娃缓存,这是在Rails中实现的,反之亦然。

class Bundle < ActiveRecord::Base
  has_many :products
end


class Product < ActiveRecord::Base
  #name: string
  belongs_to :product_type
end


class ProductType < ActiveRecord::Base
  #description: string
end


<!--- views/bundles/show.html.haml >
%table
  %tbody
    = render @bundle.products


<!--- views/products/_product.html.haml >
- cache [product] do
  %tr
    %td= product.name
    - cache [product.product_type] do
      %td= product.product_type.description

如您所见,当我更新ProductType的描述时,缓存不会刷新。据我所知,touch: true选项只能应用于belongs_to关系,并且会覆盖product.product_type的缓存,因为缓存首先访问product

是否有一个很好的解决方案,或者当Products更改时,我最终是否需要更新所有相应的ProductType

0 个答案:

没有答案