Вы можете просто сделать это:
System.arraycopy(initialArray, 0, newArray, 0, initialArray.length);
Краткий ответ на ваш вопрос: да.
Запуск model.is_active = false
сам по себе не сохранит изменение в базе данных. Попробуйте заново извлечь запись из базы данных после запуска model.is_active = false
, и вы увидите, что значение фактически не изменилось; вам также нужно запустить model.save
, чтобы сделать это.
Однако для подобных сценариев (при условии, что вы хотите немедленно сохранить изменения в записи!) Есть более краткий способ сохранения данных вместо выполнения двух команд:
model.update_attribute(:is_active, false)
Это будет обновите значение в базе данных, если проверки пройдены, а также выполните любые обратные вызовы (например, after_save
).
Если вы хотите обновить значение без выполнения проверок и обратных вызовов (что обычно быстрее, но более «опасно»), тогда вы можете вместо этого использовать:
model.update_column(:is_active, false)