《Rails》enum型とActiveHashについて考えてみる【オリジナルアプリ作成】
こんにちは。ミヤビです(^^)
暖かくなってきたこの季節は花粉症で集中力低下気味です。
今回は、オリジナルアプリを作成している中で「プルダウンリスト」を作成する際にenum型というのを学んで使ってみました。
プルダウンリスト(ドロップダウンリスト)とはこんなイメージです。
プルダウンリストを作成するやり方も色々あるとは思いますが、自分が学んだenum型とActiveHashについて何が違うんだろうか?とかを初学者なりに考えてみます。
個人的結論
最初に今の僕が考える個人的結論です。
今はこんな風に考えています。
それぞれを軽めに考えてみましょう。
enum型
enumとはenumerationのことで「列挙型」を表します。
もともとはC言語の一部であり、他の言語にも取り入れられていったようです。
モデルに下記のように記述して使います。
最初の画像の例の実際の記述です。
enum funeral_wishes: { する: 0, しない: 1 }
シンプルに何かを「する」「しない」の二択を作る場合にこの様に記述してみました。
0には「する」を定義し1には「しない」を定義しています。
マイグレーションを作成する際にはカラムを整数型で作成し、保存される時は0とか1とかの数値が値として保存されます。
enumu型を用いるメリット、デメリットについて書いている記事を見つけたので読んでみました。
う〜む、今の僕にはまだまだ深掘りはできませんが、最初の結論のようにデータが少なめな時はenumを用いることでテーブルのjoinやselectの回数が減り、パフォーマンスが上がりそうですね。
ActiveHash
ActiveHashはgemの一つです。
自分がスクールで学んだ時にも実際に使いましたが、例えば都道府県の様なリストを作成したい時に使うと良さそうです。
- データの変更がない
- 保存する必要がない
- データの数が多い
まだまだ初学者の域を出ない自分は、書いていてもあまり「保存する必要がない」とかは腹落ちしているわけでもないんですが、数が多い場合にenum型が大変そうなのは何となくわかりました。
ActiveHashの詳しい使い方とかはまた別にまとめてみます。
そもそも使いこなせているほど使ってもいないんですが^^;
プログラミングを毎日触っていると新しい知識や理解できないことが次から次に出てきますね。
コツコツと勉強を継続していきたいと思います。
より良い人生にしていきましょう♪
Discussion