Когда у меня есть список идентификаторов, которые я хочу обновить их свойство, поле updated_at в базе данных, похоже, не меняется, вот что я имею в виду:
ids = [2,4,51,124,33]
MyObj.where(:id => ids).update_all(:closed => true)
После выполнения этого обновления updated_at поле не изменяется. Однако, когда я вхожу в консоль рельсов с помощью rails c и делаю это:
obj = MyObj.find(2)
obj.closed = false;
obj.save!
После этого оператора updated_at изменится значение поля. Почему это? Я полагаюсь на это поле updated_at в моем приложении, когда я слушаю обновления и выполняю весь поток приложений, когда это происходит?
Edit
Я только что узнал из dax ответ, что:
Timestamps
Note that ActiveRecord will not update the timestamp fields (updated_at/updated_on) when using update_all().
Я не хочу обновлять одну запись за раз, есть ли способ обойти это? не прибегая к уровню sql?