Когда у меня есть список идентификаторов, которые я хочу обновить их свойство, поле 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?