.net column
.NET開発者のためのブログメディア

Railsでのenumの使い方を解説!設定方法やViewの修正方法まで

 

SE
enumを利用することのメリットについて教えてください。

PM
ではenumとは何か、基本の基礎から見ていきましょう。

Railsでのenumの使い方とは?


今回は、Ruby on Railsでのenumの使い方について説明します。

enumとは列挙型とも呼ばれ、複数の変数に連続した値を付けられるものです。連続でない任意の値を設定することもできます。

Ruby on Railsでのenumの使い方に興味のある方はぜひご覧ください。

Railsアプリの作成

まずはRuby on Railsのアプリを作成します。

以下のコマンドを実行します。

MySQLにテーブルが作成されていることを確認します。

次のコマンドでRailsアプリのサーバーを起動します。

Webブラウザから以下にアクセスしてください。空のリストが表示されることが分かります。
http://サーバアドレス:3000/myusers/

次に、ルーティングを設定します。
config/route.rbを以下のように修正します。

これで
http://サーバアドレス:3000/
でアプリにアクセスできるようになります。
画面から、以下のように適当にユーザーを登録しておきます。

enumの使用

それでは、Ruby on Railsのenumの使い方について紹介します。

まずはモデルファイルを修正します。

app/models/myuser.rbを以下のように修正してください。

ageおよびbirthplaceをenumにします。
Webブラウザを更新してみてください。以下のように表示されます。

0から連番でenumの番号が設定されていることが分かります。

viewの変更

Railsでenumに合わせて、viewを変更してみます。

ここでは、select boxにして設定した内容が選択された状態にします。

app/views/myusers/_form.html.erbを以下のように修正します。

select boxのコードは以下の部分です。

値を追加する場合

Railsでenumに値を追加する場合には注意が必要です。

例えば、ageにteensを追加したいとします。

select boxの先頭に追加するために、先頭に追加します。

Webブラウザを更新すると、以下のように表示されます。

enumはあくまでも数字ですので、ageがずれていることが分かります。
これでは都合が悪いですので、enumに値を指定します。

この状態でWebブラウザを更新すると、正しく表示されます。

select boxを選択しても、teensが先頭に表示されます。

SE
なるほど!定義の中で名前を羅列すると、自動的に値を割り当ててくれるのですね。マスターすればプログラムの不具合も減りそうですね。

PM
まさにそうです。ただ項目を追加削除する場合は、値がずれてしまうので固定値を指定する必要がありますので、お忘れなく。

まとめ

いかがでしたでしょうか。

今回は、Ruby on Railsでのenumの使い方について説明しました。また、enumの設定方法や、それに合わせたViewの修正方法もご紹介しました。

ぜひご自身でRailsのソースコードを書いて、理解を深めてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags