#ruby-on-rails #activerecord #update-all
#ruby-на-рельсах #активная запись #обновление-все
Вопрос:
В настоящее время я выполняю update_all
конкатенацию with следующим образом:
collection.update_all(flag: false)
collection.update_all(["description = CONCAT(description, ?)", 'not_available'])
Возможно ли сделать это сразу?
Очевидно, что эта конструкция не работает:
collection.udpate_all(flag: false, ["description = CONCAT(description, ?)", 'not_available'])
Ответ №1:
update_all
может принимать массив, поэтому вы должны быть в состоянии сделать что-то вроде этого:
collection.udpate_all([
"description = CONCAT(description, ?)", flag = ?,
'not_available',
false
])
Комментарии:
1. По какой-то причине две переменные привязки не работают. Я придумал такое решение
collection.update_all(['desc = CONCAT(desc, ?), flag = FALSE', 'not_available'])