Leon's Blogging

Coding blogging for hackers.

Dirty Objects 追蹤 Model 的屬性是否有改變

| Comments

可用來觀察,追蹤 Model 的屬性是否有改變
可在存進資料庫前,根據是否修改,來做其他動作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
a.changed
#=> []
a.changed?
#=> false
a.title = "abc"
#=> "abc"

a.changed?
#=> true
a.changed
#=> ["title"]
a.changes
#=> {"title"=>["ha", "abc"]}

a.title_was
#=> "ha" 改變之前的值
a.title
#=> "asd"
a.title_change
#=> ["ha", "asd"]

儲存進資料庫,追蹤記錄就消失了。
a.save
#=> true
a.changed?
#=> false
a.changed
#=> []
a.changes
#=> {}

官方文件:
api - Dirty

參考文件:
ActiveRecord - 進階功能

Comments