Это очень похоже на Проблема частичного обновления Rails с хешами , но на этот вопрос действительно не было ответа ИМХО.
Проблема заключается в следующем: у меня есть модель с сериализованным столбцом:
class Import < AR::Base
serialize :data
В моем случае эти данные не изменятся и не должны изменяться после первого сохранения / создания модели.Поэтому я хочу отключить функцию AR, которая всегда сохраняет сериализованные столбцы (что обычно является хорошей идеей, поскольку не может обнаружить эти изменения).Я хочу отключить сохранение, потому что данные могут быть довольно большими, и модель будет часто обновляться.
Я уже пробовал monkeypatching в 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