Использование Rails 3.2. Как показано в doc on update
method, то update
находок на основе id
:Rails обновление нескольких записей на основе другого идентификатора
update(id, attributes)
# id - This should be the id or an array of ids to be updated.
# Updates multiple records
people = { 1 => { "first_name" => "David" }, 2 => { "first_name" => "Jeremy" } }
Person.update(people.keys, people.values)
Что делать, если я хочу, чтобы обновить массив найдено на основе других столбцов? Например:
people = { 'cook' => { "first_name" => "David" }, 'server' => { "first_name" => "Jeremy" } }
Найти людей с role = cook
, а затем обновить first_name = David
; находите людей с role = server
, а затем обновите first_name = jeremy
.
Я хочу, чтобы это было сделано в 1 запросе, если это возможно, а не SQL. Благодарю.
Попробуйте update_all http://apidock.com/rails/ActiveRecord/Base/update_all/class –
Был ли какой-либо из ответов разработан для вас? – Pavan