Rails4のページキャッシングの概要 | サーバーエンジニアのスキルアップ日記

サーバーエンジニアのスキルアップ日記

サーバエンジニアがレンタルサーバーを使って試行錯誤しながら各種サービスを動作させ、スキルアップする日々を語ります。

Rails4のページキャッシングの概要についてです。Rail4からはコアから削除されているのでGemを追加して動作確認しました。
下記サイトを参考にしました。
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