はじめに
アプリ開発でActive Hashではなくenumを使ってみたので軽くまとめてみました。
目次
1.テーブルの設定
2.モデルの設定
3.ビューファイルの設定
1. テーブルの設定
今回はgenderというカラムにenumを使っていきます。
enumを使う際はカラム型をinteger型にする必要があります。
カラム名 | カラム型 |
---|---|
gender | integer |
2. モデルの設定
モデルファイルにデータを記述します。
enumは以下のようなハッシュの形で定義します。
例
enum gender: { man: 0, woman: 1, other: 2 }
3. ビューファイルの設定
今回はラジオボタンとして表示しました。
第一引数にカラム名、第二引数にモデルで定義した値を記述します。
<div class="field">
<%= f.label :man %>
<%= f.radio_button :gender, :man %>
<%= f.label :woman %>
<%= f.radio_button :gender, :woman %>
<%= f.label :other %>
<%= f.radio_button :gender, :other %>
</div>
manが選ばれたときのデータベースへの保存の流れ
ビューでmanをキーとして送信→コントローラー→モデルで送られてきたキーを元に番号を探す→データベースに数値で保存
参考リンク