Недавно я обнаружил этот пост в блоге на эту тему .
Подводя итог, он описывает (с примерами) методы переопределения поведения ActiveRecord по умолчанию с помощью этих столбцов отметок времени.Он объясняет, что ActiveRecord фактически игнорирует предоставленную информацию updated_at и всегда использует свои собственные метки времени.
В конечном счете, он обезьяна исправляет ActiveRecord, чтобы предоставить новый метод update_without_timestamping
, который выполняет функцию отключения и повторного включения метки времени и это потокобезопасный и только изменяет поведение модели, над которой работает.
Если вы не хотите читать статью, его окончательный исправленный код обезьяны выглядит следующим образом:
module ActiveRecord
class Base
def update_record_without_timestamping
class << self
def record_timestamps; false; end
end
save!
class << self
remove_method :record_timestamps
end
end
end
end