会員に対して運営側が行った対応状況を保持する 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}
回答1件
あなたの回答
tips
プレビュー