изменить, вот что я имею в виду:Обновление метки времени с #update_all
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
в моем приложении, поскольку я слушаю обновления и делаю весь поток приложений, когда это происходит?
Редактировать
Я только что узнал от dax
ответа, что:
Timestamps
Note that ActiveRecord will not update the timestamp fields (updated_at/updated_on) when using update_all().
Я не хочу быть обновление одной записи в то время, есть способ обойти это? не прибегая к уровню sql?
+1 для «одного запроса, чтобы управлять всем» - и это лучший ответ :) – dax
благодарим вас за ответ olivier. Я также думал об этом, я просто надеюсь, что есть более элегантное решение.спасибо, я собираюсь пойти на это пока. –
Я думаю, что 'Time.now' в этом случае более присвоен – coorasse