У меня есть процесс, который выполняет итерации через кучу моделей ActiveRecord, выполняет некоторую обработку и сохраняет модели снова. Часто, однако, обработка не приводит к изменениям атрибутов, поэтому столбец updated_at
никогда не изменяется (даже если вызывается сохранение).«Touch» updated_at column в Rails 2.3.2
Я бы предпочел не отключать частичные обновления (в общем, они полезны). Я предполагаю, что мои два варианта являются:
- Добавить отдельный столбец временной метки в модели (т.е. «
processed_at
») и управлять этим сам, хотя это кажется немного расточительно/избыточными. - Или как-то переопределить управление атрибутом
updated_at
?
Я слышал, что Rails 3 будет иметь метод «касания», который будет именно тем, что я ищу.
Любые идеи/варианты/мнения?
Wow! Ты прав. Извлеченный урок, не верьте всему, что вы читаете в блоге (http://ryandaigle.com/articles/2009/4/20/what-s-new-in-edge-rails-touching), просто пойдите прямо в источник (http://github.com/rails/rails/blob/0d3c5f0a822cd1b6029b5f619774b7794a94f370/activerecord/lib/active_record/timestamp.rb#L27) – ideasasylum
Я думаю, что DHH, возможно, упомянул об этом в Twitter - вот как я знал об этом. –
Grrr ... похоже, что сенсорная поддержка просто пропустила выпуск 2.3.2 и находится только в ветке 2.3-STABLE. Там нет 2.3.3, но 2.3.4 указана как 18 июля. Думаю, мне просто нужно подождать :-( – ideasasylum