Railsでテーブルを作るほどでもないなと思ったデータはActiveHashで作る
2019/06/08
静的データだからテーブル作るのはめんどくさいけど、ActiveRecordのように扱いたいって時にはactive_hashというGemが便利
https://github.com/zilkey/active_hash
使い方
gem 'active_hash'
class Category < ActiveHash::Base
self.data = [
{ id: 1, name: '総合' },
{ id: 2, name: '一般' },
{ id: 3, name: '世の中' },
{ id: 4, name: '政治と経済' },
{ id: 5, name: '暮らし' },
{ id: 6, name: '学び' },
{ id: 7, name: 'テクノロジー' },
{ id: 8, name: 'おもしろ' },
{ id: 9, name: 'エンタメ' }
]
end
irb(main):001:0> Category.all.each do |category|
irb(main):002:1* puts category.name
irb(main):003:1> end
総合
一般
世の中
政治と経済
暮らし
学び
テクノロジー
おもしろ
エンタメ
ちゃんとActiveRecordのメソッドそれなりに使えたりする。
irb(main):005:0> Category.find(1)
# => #<Category:0x00005616a45ef658 @attributes={:id=>1, :name=>"総合"}>
irb(main):007:0> Category.where(name: '暮らし')
# => [#<Category:0x00005616a45ee9d8 @attributes={:id=>5, :name=>"暮らし"}>]
irb(main):010:0> Category.last.name
# => "エンタメ"
試してないけどActiveHash、ActiveRecord間でリレーションも貼れるらしい。