Rails で未ログインの場合だけ view をキャッシュする方法
Rails で未ログインの場合だけ view をキャッシュする良い方法はありますでしょうか?
フラグメントキャッシュでできないかと思い、 Google 検索をしてみましたが、情報が見つからなかったため、質問させていただきました。
具体的な利用シーンとしましては、未ログインでもログイン済みでも同じ表示がされるページがあり、そのページは別にある管理画面からの投稿を10〜20件ほど表示をしていまして、そのページの表示を速くするためにキャッシュを利用したいと考えています。
現在、そのページが表示されるのに約1秒かかっています。(Developer tools にて計測しました。)
正確な数字でないですが、体感的には未ログインの場合のアクセスが7割くらいと思われるので、未ログインの場合だけでも表示を速くできればと考えています。
下記のように if 文で分岐すればできるかと思いますが、できれば HTML は2回書きたくないということと、導入したいページが比較的多く、パーシャルにするのも少々手間なため、さくっと導入できる方法があったりしないかなと思い、質問をさせていただきました。(わがままですみません^^;)
- if user_signed_in?
%div
- # ログイン済みの場合の HTML
- else
- cache
%div
- # 未ログインの場合の HTML
と、ここまで書いて思ったこととしましては、キャッシュしたい部分をパーシャルにして、上記のように if 文で分岐するのがスマートかなと思いました。