這與Rails partial updates problem with hashes非常相似,但問題還沒有真正回答過恕我直言。停止ActiveRecord即使沒有改變,也會保存一個序列化列
問題是這樣的:我有一個序列化的柱的模型:
class Import < AR::Base
serialize :data
在我而言,這個數據會,也應該不會改變後的第一個保存/模型的創建。所以我想禁用AR總是保存序列化列的功能(這通常是一個好主意,因爲它無法檢測到這些更改)。我想禁用保存,因爲數據可能非常大,並且模型會經常更新。
我已經嘗試過的Monkeypatching到ActiceRecord :: AttributeMethods ::髒這樣的:
class Import
def update(*)
if partial_updates?
super(changed | (attributes.keys & (self.class.serialized_attributes.keys - ["data"])))
else
super
end
end
但這似乎沒有任何效果。任何人有更好的主意?
這是在Rails的3.0.12
這實際上很有意義,謝謝分享見解。我想我會沿着同樣的道路走下去,並且在_Storage_模型和其他擁有隻讀序列化列的模型之間使用多態關聯 – 2012-06-01 12:10:28