Нет необходимости добавлять пользовательские условия, чтобы проверить, были ли изменены ваши атрибуты или нет, потому что Rails обрабатывает ByDefault .
Если измененный объект Active Record был получен, он будет сохранен в базе данных, в противном случае никакие операции не будут выполнены. Для лучшего понимания вы можете самостоятельно проверить консоль, выполнив оба запроса.
Для предотвращения хранения пустых значений в базе данных. Пожалуйста, проверьте, используете ли вы типы методов «PATCH» для обновления записи или нет.
Потому что это возможно только при одном условии:
использование метода 'PUT' для обновления записи и предоставления только измененных атрибутов 'key-pair'
рельсы. Rails сохранит другое не указанное «ключ-значение»
атрибуты с пустыми значениями.
В Rails у нас есть два типа методов для метода «Update».
- PUT
(обновить всю или только часть записи.)
- PATCH
можно обновить только частичную запись
Чтобы следовать лучшей семантике HTTP, Rails будет использовать HTTP-глагол PATCH для обновлений. PATCH допускает как полное, так и частичное обновление ресурса, и больше подходит для того, как Rails обновляет ресурсы. Если вы обновляете существующее приложение Rails, HTTP-глагол PUT все равно будет сопоставлен с действием обновления в
RESTful маршруты, но рекомендуется использовать PATCH для продвижения вперед.