下記サイトを参考にしました。
http://www.sitepoint.com/caching-cache-digest/
ファイル内のアクションの出力を保存するメカニズムで、この仕組みによって、Actionpackを通さずに応答できます。
●サンプルで確認
①'actionpack-page_caching'をインストール
$ vi Gemfile
gem 'actionpack-page_caching'
$ bundle install
Installing actionpack-page_caching (1.0.2)
②設定
$ vi config/environments/development.rb
config.action_controller.perform_caching = true
config.action_controller.page_cache_directory = "#{Rails.root.to_s}/public/deploy"
③scaffoldで"blog"を作成
$ rails generate scaffold blog title:string description:string
$ bundle exec rake db:migrate
④indexアクションにページキャッシュを設定
$ vi app/controllers/blogs_controller.rb
class BlogsController < InheritedResources::Base
caches_page :index
def index
@blogs = Blog.all
end
end
⑤データを登録
$rails c
2.0.0-p247 :003 > Blog.create(title: 'sample post', description: "sample")
⑥動作確認
ブラウザで"http://localhost:3000/blogs/"にアクセス。
・public/deploy/ディレクトリ内にキャッシュされた"blogs.html"というファイルが作成されている事を確認。
・ログ確認
$ tail -500 log/development.log
Started GET "/blogs/" for 49.240.165.90 at 2014-04-20 21:31:38 +0900
Processing by BlogsController#index as HTML
Blog Load (0.2ms) SELECT "blogs".* FROM "blogs"
Rendered blogs/index.html.erb within layouts/application (2.1ms)
Write page ・・public/deploy/blogs.html (0.3ms)
Completed 200 OK in 21ms (Views: 19.0ms | ActiveRecord: 0.2ms)
HerokuではじめるRailsプログラミング入門/掌田 津耶乃
¥3,456
Amazon.co.jp