質問編集履歴

1

追加

2015/06/16 06:17

投稿

sybent928
sybent928

スコア11

test CHANGED
@@ -1 +1 @@
1
- Rails enumの使い道
1
+ Rails enumsの使い道
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  statusモデルを作ってuserモデルとアソシエーションするのと
4
4
 
5
- enumでやるかどちらが良いでしょうか?
5
+ enumsでやるかどちらが良いでしょうか?
6
6
 
7
7
  statusに入る対応状況の種類は未対応、対応中、対応完了、ペンディングの4つです。
8
8
 
@@ -11,3 +11,59 @@
11
11
 
12
12
 
13
13
  文言は違えど同じようなモデルがあと5個ぐらいあって、今から修正するか迷っています。
14
+
15
+
16
+
17
+
18
+
19
+ 文言違いますが、下記は例です。モデルで切り出すのとenumsを使う場合
20
+
21
+ どのように使い分けますか?
22
+
23
+
24
+
25
+ ```lang-<ruby>
26
+
27
+ class User < ActiveRecord::Base
28
+
29
+
30
+
31
+ # ステータス: temporary (仮登録), active (本登録), resign (退会).
32
+
33
+ enum status: %i(temporary active resign)
34
+
35
+
36
+
37
+ end
38
+
39
+
40
+
41
+ # status が 1 (active) なユーザを取得する.
42
+
43
+ user = User.active.first!
44
+
45
+
46
+
47
+ # status は 0 (temporary) ではない.
48
+
49
+ user.temporary? # => false
50
+
51
+
52
+
53
+ # status を確認.
54
+
55
+ user.status # => "active"
56
+
57
+
58
+
59
+ # status を 2 (resign) に変更!
60
+
61
+ user.resign!
62
+
63
+
64
+
65
+ # status の取る値を確認.
66
+
67
+ User.statuses # => {"temporary"=>0, "active"=>1, "resign"=>2}
68
+
69
+ ```