本厚木のエンジニアブログではある

日々の開発で出たエラーや日常などいろいろ書いていくブログです。

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

※あくまでメモです