- 更新日: 2014年4月12日
- Rails
Rails.cache.fetch でオブジェクトをキャッシュ
スポンサーリンク
Rails4 では fragment cache が標準のキャッシュになっています。fragment cache はビューの一部をキャッシュするのに使う。一方単純にオブジェクトをキャッシュしたいケースもあり、その場合は Rails.cache を使うそうです。
【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
スポンサーリンク
— 環境 —
Rails 4.0.1
config.cache_store の設定
デフォルトだとキャッシュは file_store となります。rails_root/tmp/cache 以下にキャッシュ用のファイルが作成される。memcached を使う場合は以下のような設定を行う。
config/environments/production.rb
1 |
config.cache_store = :mem_cache_store |
Rails.cache.fetch を使うと if 文を書かなくて済む
Rails.cache.fetch という便利なメソッドがあり、これを使うとキャッシュがある場合とない場合で if ~ else 文で分岐しなくて済むように書けます。これは便利。コントローラー内で以下のように書く。
1 2 3 4 5 6 |
cache_key = "some_key" cache_expire = 24.hour some_object = Rails.cache.fetch(cache_key, expires_in: cache_expire) do get_some_object end |
if ~ else 文を使って書くと以下のような感じです。
1 2 3 4 5 6 7 8 9 10 11 |
cache_key = "some_key" cache_expire = 24.hour cache = Rails.cache.read(cache_key) if cache.present? some_object = cache else some_object = get_some_object Rails.cache.write(cache_key, some_object, expires_in: cache_expire) end |
Rails.cache.fetch 便利だしかっこいい。
- – 参考リンク –
- Railsでmemcacheを使ってobjectをキャッシュ – Qiita
- Rails.cache.fetch でキャッシュがあったら返す/無かったら生成して返す – 暇人じゃない
スポンサーリンク
パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。Ruby on Rails 4 アプリケーションプログラミングは、入門的な内容で Rails の機能全体を網羅されています。
- Rails の関連記事
- RailsでMySQLパーティショニングのマイグレーション
- Rails ActiveRecordでdatetime型カラムのGROUP BY集計にタイムゾーンを考慮する
- RailsプラグインGemの作成方法、RSpecテストまで含めたrails pluginの作り方
- RailsでAMPに対応するgemをリリースしました
- Railsでrequest.urlとrequest.original_urlの違い
- Railsでwheneverによるcronバッチ処理
- Google AnalyticsのRails Turbolinks対応
- Railsアプリにソーシャル・シェアボタンを簡単設置
- Rails監視ツール用にErrbitをHerokuで運用
- Facebook APIバージョンのアップグレード手順(Rails OmniAuth)
Leave Your Message!