⭐️Adminとは何?

└Railsでアプリを作っている時、アプリを運営する側(管理者)にしか使えない機能を実装したい時に使うもの。

全ユーザーに対して管理者権限の有無を設定して、管理者権限があるユーザーしか削除を実行できないようにするのが一般的なAdmin

⭐️enumとは?

enumとは、列挙型とも呼ばれ、一連の整数値に対して複数の変数名をつけられる仕組みを指します。

例えばUserモデルに role というカラムが存在したとしましょう。

この role カラムで判定したいのは「承認されているか、非承認か」ということで、値としてinteger型の0と1が保存されるものとします。

ここで、Userモデルに下記のような定義を施したとします。


enum role: { 
			general: 0,  ←一般ユーザー
			admin: 1  ←管理者ユーザー
	}

これで role カラムを enum として定義することができました。

enum を定義して、具体的にどのようなことが可能になるのでしょうか?

例えば、ユーザーが承認されているかどうかを判定したい場合、

enum 未定義の場合

~~~(実行したい処理) if @user.status == 1

と言った記述を行わねばならず、記述が長い上に、「1」という数字が何を表しているかわからないコードになってしまいます。

一方で、enum が定義されていると、

enum 定義済の場合

~~~(実行したい処理) if @user.permitted?

と言った具合に、コードを読んだ段階でどのような処理を施しているのかの予測が立ちやすく、且つ簡潔なコードで記述することができます。

enumはこの他にも様々なメソッドが用意されていますので、積極的に活用していけるようにしましょう。