Railsのキャッシュ管理用の画面を提供してくれるGem「FastEntry」
Published in
4 min readMar 22, 2019
少し前にGitHubで見かけて気になっていたので使ってみました。
Rubyの環境はこちら。
$ ruby -v
ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-darwin17]$ rails -v
Rails 5.2.2.1
Railsのプロジェクトを作成して、Gemを入れます。
$ rails new fastentry-example
$ cd fastentry-example/# Gemfile
gem 'fastentry'
gem 'redis'$ bundle install
redis
はこのあと redis_cache_store
を使うため入れていますが、FastEntryを使うために必須なわけではありません。
では必要な設定をしていきます。
# config/routes.rb
require 'fastentry/engine'
mount Fastentry::Engine, at: '/fastentry'# config/environments/development.rb
config.cache_store = :redis_cache_store, { url: 'redis://localhost:6379/15' }$ ./bin/rails dev:cache
メモリストアだと確認しづらいので、Rails 5.2からデフォルトで使えるようになった redis_cache_store
にします。
15
の部分は使ってないDB番号にしておきます。(使っているDBだと他のプロジェクトのデータが見えてしまいます。)
今回はサンプルなので認証はしませんが、READMEにはDevise向けの設定方法が書いてあります。
準備は終わったので /fastentry
にアクセスします。
空っぽですね。
コンソールからいくつかキャッシュを追加してみます。
> Rails.cache.write('test-key-1', '無期限です')
=> true
> Rails.cache.read('test-key-1')
=> "無期限です"> Rails.cache.write('test-key-2', '1時間で無効です', expires_in: 1.hour)
=> true
> Rails.cache.read('test-key-2')
=> "1時間で無効です"
画面をリロードすると登録されたキャッシュが表示されます。
消してみます。
コンソールからも取得できなくなりました。
> Rails.cache.read('test-key-1')
=> nil
> Rails.cache.read('test-key-2')
=> nil
管理画面系のGemは結局カスタマイズしたくなって、独自実装が一番、となりがちですが、
こういう単機能なものであれば、そのままの形で便利に使えるかもしれませんね。