active_hashとは
Active_Recordのように読み込み専用情報をまとめたハッシュを扱うことができるものです。
現在アプリのDBに変動が起きないデータを保存している場合、すぐ入れ替えることが可能。
まとめると、DBに保存せずに使うことができる。
##使い方
※都道府県(prefectureモデル)のactive_hashを作成する。
1.Gemfileに以下を記述する。
gem 'active_hash'
忘れず実行する。
$ bundle install
2.Active_Hash::Baseを継承しているモデルを作成する。(app/modelsの中にファイル作成)
app/models/prefecture.rb
class Prefecture < ActiveHash::Base
end
3.データを用意する。(config/initializersの中にファイル作成)
config/initializers/data.rb
Rails.application.config.to_prepare do
Prefecture.data = [
{:id => 1, :name => "北海道"},
{:id => 2, :name => "青森県"},
...
]
end
4.アソシエーションを定義する。
[例]
PrefectureとAddress(住所)が1対多の関係を定義します。
active_hash側のモデルに定義
app/models/prefecture.rb
class Prefecture < ActiveHash::Base
include ActiveHash::Associations
has_many :addresses
end
Active_Recordのモデル側に定義
app/models/address.rb
class Address < ActiveRecord::Base
extend ActiveHash::Associations::ActiveRecordExtensions
belongs_to :prefecture
end