【Rails】enumについて
はじめに
enumについて記述していきます。
enumとは?
enumとは、1つのカラムに指定した複数個の定数を保存できる様にする為のモノです。
例 user.rb
class User < ApplicationRecord enum role: { general: 0, admin: 1 } end
このenumを使うと指定した複数個の定数以外の値は保存できない様にしたり、カラムに指定した定数が入っているレコードを取り出すのが容易になったりと多くのエンジニアが頻繁に使用する大変便利なメソッドです。
enumの定義方法
マイグレーションファイル
class AddRoleToUsers < ActiveRecord::Migration[5.2] def change add_column :users, :role, :integer, null: false, default: 0 end end
これでuserにroleという役割カラムを作成しました。integer型なので整数しか入りません。 enumはこの数値に定数を与えることができます。
それが先ほど例で出したものです。
user.rb
class User < ApplicationRecord enum role: { general: 0, admin: 1 } end
つまり、新規作成したuserは基本0の値が入るのでroleカラムにgeneralが入ります。