Это очень похоже на Проблема частичного обновления Rails с хэшами, но на вопрос ИМХО ответа нет. .
Проблема в следующем: у меня есть модель с сериализованным столбцом:
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