[Rails3]cache_key生成ルール(フラグメントキャッシュの場合)

Rails3のキャッシュキー生成ルール


メモ


fragment_cache_keyの場合


cacheに渡す値がStringの場合


<% cache "test" do %>
# something
<% end %>

キャッシュキーは以下の値になる


views/test

cacheに渡す値がArrayの場合


<% cache %w(x, y, z) do %>
# something
<% end %>

キャッシュキーは以下の値になる


views/x/y/z

cacheに渡す値がHashの場合


<% cache {x: "1", y: 2} %>
# something
<% end %>

キャシュキーは以下の値になるとおもいきや。。。


views/x=1&y=2

url_for(hash_value)される為なりません


Viewのコントローラがproducts, Actionがshow, idが1, sortというパラメータがdescの場合は以下のようになります(未検証)


views/#{host名}/products/1?sort=desc

development等の場合はhost名の部分が空になるかと思います


また後日検証します


参考


ActionControllerのwrite_fragment ... これがフラグメントキャッシュを書き込んでいる部分(cache do ~ endで呼ばれるところ)
ActiveSupportのexpand_cache_key ... これがcache_keyを生成している部分
cache_helper ... これがcache do ~ endのhelper実装部分

スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。