ActiveHashとは
カテゴリー名などの、変更される予定の無いデータをモデルファイルに記入することで、データベースに保存することなくActiveRecordのようなメソッドを使用することができるようにするGemのことです。
なぜActiveHashを使用するのか
ActiveHashを使用する理由は、データベースへのクエリと比較すると負荷が小さく、アプリケーションのパフォーマンスへの影響が少ないと考えられるからです。
ActiveHashを使用した場合データはメモリ上に保存され、データベースに保存するよりも、高速でデータの取得を行うことができます。
インストール方法
Gemfileの最下部に以下の内容を追加します。
Gemfile
gem 'active_hash'
ターミナルで実行します。
bundle install
使用方法
ActiveHashを使用するために、まずはモデルを作成します。(今回はCategoryモデル)
rails g model category
ActiveHash::Baseを継承します。
app/models/category.rb
class Category < ActiveHash::Base
ActiveHash::Baseは、あるモデル内でActiveHashを使用する際に必要なクラスです。
ActiveHash::Baseを継承することで、ActiveRecordと同様なメソッドを使用することができるようになったので、データの内容を入力します。
app/models/category.rb
class Category < ActiveHash::Base
self.data = [
{ id: 1, name: 'トップス' },
{ id: 2, name: 'ボトムス' },
{ id: 3, name: 'アウター' },
]
end
これで、データベースに保存することなく、データを取り出すことができるようになります。