質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1880閲覧

Rails enumsの使い道

sybent928

総合スコア11

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2015/06/14 04:14

編集2015/06/16 06:17

会員に対して運営側が行った対応状況を保持する status カラムを用意した場合に
statusモデルを作ってuserモデルとアソシエーションするのと
enumsでやるかどちらが良いでしょうか?
statusに入る対応状況の種類は未対応、対応中、対応完了、ペンディングの4つです。
今後も増える可能性があるので、とりあえずmodelに切り出して実装しました。

文言は違えど同じようなモデルがあと5個ぐらいあって、今から修正するか迷っています。

文言違いますが、下記は例です。モデルで切り出すのとenumsを使う場合
どのように使い分けますか?

lang

1class User < ActiveRecord::Base 2 3 # ステータス: temporary (仮登録), active (本登録), resign (退会). 4 enum status: %i(temporary active resign) 5 6end 7 8# status が 1 (active) なユーザを取得する. 9user = User.active.first! 10 11# status は 0 (temporary) ではない. 12user.temporary? # => false 13 14# status を確認. 15user.status # => "active" 16 17# status を 2 (resign) に変更! 18user.resign! 19 20# status の取る値を確認. 21User.statuses # => {"temporary"=>0, "active"=>1, "resign"=>2}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rifuch

2015/06/16 05:03

enumにする、というのはどういうことでしょうか? 会員 has_many: 対応 対応 belongs_to: 会員 で、対応に対応状況カラムがあり、そこにenumを入れるか、それともstatusをマスター化して切り出すか、ということでしょうか?
sybent928

2015/06/16 06:17

追加しました。
guest

回答1

0

ベストアンサー

基本、ステータスに関して、UI上で変更が必要でなければ、ステータスの固定値を格納する方法を採りますね。
そっちの方がコードの見通しも良さそうですし。

管理コンソールみたいな設定画面上で、ステータスの種類を追加したりするような場合には、モデル化してマスターテーブルを作ります。が、ほとんどの場合、そういう仕様にはならないでしょう。

投稿2015/06/16 06:35

rifuch

総合スコア1901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sybent928

2015/06/16 08:35

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問