Обязателен ли метод сохранения в рельсах?

Вы можете просто сделать это:

System.arraycopy(initialArray, 0, newArray, 0, initialArray.length);
0
задан Manohar 8 March 2019 в 10:19
поделиться

1 ответ

Краткий ответ на ваш вопрос: да.

Запуск model.is_active = false сам по себе не сохранит изменение в базе данных. Попробуйте заново извлечь запись из базы данных после запуска model.is_active = false, и вы увидите, что значение фактически не изменилось; вам также нужно запустить model.save, чтобы сделать это.

Однако для подобных сценариев (при условии, что вы хотите немедленно сохранить изменения в записи!) Есть более краткий способ сохранения данных вместо выполнения двух команд:

model.update_attribute(:is_active, false)

Это будет обновите значение в базе данных, если проверки пройдены, а также выполните любые обратные вызовы (например, after_save).

Если вы хотите обновить значение без выполнения проверок и обратных вызовов (что обычно быстрее, но более «опасно»), тогда вы можете вместо этого использовать:

model.update_column(:is_active, false)
0
ответ дан Tom Lord 8 March 2019 в 10:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: