ActiveRecord Update_all до значения переменной
Я ищу способ обновить все записи с определенным условием их cur_val + 100:
У меня есть таблица предложений с полями идентификатора и оценки, и я хочу, чтобы все записи с определенными идентификаторами получали увеличение оценки, например:
Suggestion.where(id: ids_list).update_all(score: score+100)
Как я могу это сделать?
1 ответ
Решение
Попробуй просто SQL
, прочитать о update_all
:
Suggestion.where(id: ids_list).update_all('score = score + 100')
Но помни update_all
не вызвать Active Record
обратные вызовы или проверки.
Несколько советов:
Вы можете сделать это в Ruby
но это очень плохо
Suggestion.where(id: ids_list).find_each do |x|
x.update(score: x.score + 100)
end
Такие вещи должны происходить в базе данных.