Leon's Blogging

Coding blogging for hackers.

用 Enum 做選項

| Comments

可將多的選項的欄位,用 interger 來儲存,在列舉出來。
好處是之後要更改欄位名稱,就可以直接更改相對應的值,就不用特別去資料庫更改。

設定

注意要 enum 的欄位必須是 integer

1
t.integer gender

model

1
2
3
enum gender:[:male, :female]
# or
enum gender { male:1, female:2 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
User.genders
#=>{"male"=>0, "female"=>1}

User.keys
#=>["male", "female"]

user = User.first
user.update(gender: 0)
user.gender
#=>"male"

user.male?
#=> true
user.female?
#=> false

官方文件:
api - Enum

參考文件:
Rails 4.1 的新特性(译)

Comments