Rails Enumerizeの使い方 enumを使って分類する方法
enumerizeとは
railsのModelで列挙型を使うようにできるGemです。 例えばUserモデルがあったとしてそのUserをstatus(ステータス)で分類したい時などに使います。
インストール方法
Gemfileに
gem 'enumerize'
を追加
ターミナルで
bundle install
を叩けば使えるようになります。
enumの設定前の状態として
Userモデルでstautsをinteger型で定義していること(デフォルト大事かも)
こんな感じ(schema.rb)
create_table "users", force: :cascade do |t| t.integer "status", default: 0 end
enumの設定方法
Userモデルの上の方に
extend Enumerize
を追加
そしてUserモデルの良さげなところに書きを追加
enumerize :status, in: { free: 0, # 無料ユーザー paid: 1, # 有料ユーザー }, scope: true
結果
enumを入れることで、分類しやすくなった enumでよく使うメソッドなんてこれくらいだと思います。
user = User.new #<User id: nil, status: 0, created_at: nil, updated_at: nil> user.free? # true user.status #free
※あくまでメモです