3
假設與非瞬態屬性一個和瞬時屬性b模型:如何獲取ActiveRecords跟蹤的模型中瞬態屬性的變化?
class Model < ActiveRecord::Base
attr_accessor :b
end
我想Rails的跟蹤屬性兩個屬性的變化。目前,model.changes只跟蹤屬性a的變化。
我迄今爲止嘗試:
使用::加載ActiveModel髒方法:
include ActiveRecord::AttributeMethods::Dirty
class Model < ActiveRecord::Base
attr_accessor :b
define_attribute_methods [:b]
def b
@b
end
def b=(val)
b_will_change! unless val == @b
@b = val
end
end
遺憾的是Rails不喜歡它,並拋出一個TypeError。
有沒有任何想法如何完成這件事?
此屬性未保留在數據庫中。那麼你想跟蹤變化的初始值是什麼? –
當然,瞬態屬性的初始值爲零,但當瞬時屬性的當前值被覆蓋時總是發生變化。與持久屬性相同... – Scholle