对于bar_id = 1,首次访问时会形成缓存。但即使bar_id稍后更改为2,也会保留值1。如何在bar_id(s)
之间使其工作 @foo = Rails.cache.fetch("foo_by_id", expires_in: 10.minutes) do
Foo.where(:search => params['search'], :bar_id => params['bar_id']).first
end
答案 0 :(得分:1)
您的缓存密钥必须包含您要将缓存分开的所有动态数据。 在您的情况下,缓存键必须包含bar_id。我要做的是:
@foo = Rails.cache.fetch("foo_by_id:#{params['bar_id']}", expires_in: 10.minutes) do
Foo.where(:search => params['search'], :bar_id => params['bar_id']).first
end