LoginSignup
2
3

More than 3 years have passed since last update.

『RubyOnRails』enumの使い方

Last updated at Posted at 2019-08-22

初めに

プログラミングを始めて4ヶ月の初学者です。
今回enumを使う機会があったのでメモを残します。

環境

・Ruby '2.3.8'
・Rails '5.2.3'

emunとは

enum(イーナム)はRails4.1から導入された機能です。

enumを使用すると以下の様な事が出来ます。
DBの中では数字を保存させる。
Viewでは文字を表示させる。

例:日本というテーブルに地方というカラムがあったとします。
enumを使用しない場合は、地方カラムに関東、関東、九州、四国の様に文字が登録されます。
しかし、enumを使用した場合は関東は1、関西は2、四国は3、九州は4と定義する事で、DBの中は1、1、4、3の様に保存され、Viewでは対象の文字を表示させる。

emunの利点

・データ型をintegerにするとDBに数字で登録されるが、数字だけだと数字が持つ意味が共有出来ない。
一人で開発する時は自分だけが意味を理解していればいいが、チーム開発だとチーム内で意味が理解できていないといけない。
そこで、enumを使用する事で数字が何を表しているかがチーム内で共有出来る。

emunの使用方法(モデル編)

対象にモデルに記述します。
今回はroomというテーブルのcategoryカラムにenumを使用したいと思います。

room.rb
enum category: { 喜び: 0, 悲しみ: 1, 不思議: 2, 憧れ: 3, 恐怖: 4, 後悔: 5, 期待: 6, 怒り: 7 }

これで、数字と文字を関係付ける事ができました。

emunの使用方法(view編)

今回はプルダウン形式で表示させたいと思います。

room.rb
<%= form_for(@room) do |f| %>
  <%= f.select :category, Room.categories.keys.to_a, {} %>
<% end %>

これでview側で表示させる事が出来ます。
スクリーンショット 2019-08-23 0.00.16.png

最後に

分かりにくい記事かもしれませんが、初学者の助けになれば幸いです。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3