0

bar_id = 1 の場合、最初のアクセスでキャッシュが形成されます。ただし、後で bar_id が 2 に変更されても、値 1 は保持されます。bar_id を超えて機能させるにはどうすればよいですか

 @foo = Rails.cache.fetch("foo_by_id", expires_in: 10.minutes) do
    Foo.where(:search => params['search'], :bar_id => params['bar_id']).first
 end
4

1 に答える 1

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
于 2013-03-29T12:02:01.087 に答える