【发布时间】:2012-04-16 09:33:39
【问题描述】:
这与Rails partial updates problem with hashes 非常相似,但恕我直言,这个问题并没有真正得到回答。
问题是这样的:我有一个带有序列化列的模型:
class Import < AR::Base
serialize :data
在我的情况下,这些数据在第一次保存/创建模型后不会而且应该不会改变。所以我想禁用始终保存序列化列的 AR 功能(这通常是个好主意,因为它无法检测到这些更改)。我想禁用保存,因为数据可能很大,而且模型会经常更新。
我已经尝试过像这样对 ActiceRecord::AttributeMethods::Dirty 进行猴子修补:
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 下
【问题讨论】:
标签: ruby-on-rails activerecord serialization partial updates