3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

active_hashの使い方

Posted at

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
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?