База данных
group-name = varchar
group-status = int
имя пользователя varchar
user-status = int
Обычный случай POST (он отлично работает.)
group-name = "Название группы"
group-status = 1
имя пользователя "Имя"
user-status = 0
Специальный случай POST (он изменит неправильное значение типа данных на 0.)
group-name = "Название группы"
group-status = "BBB"
имя пользователя "Имя"
user-status = "AAA"
Это потому, что я хочу, чтобы "AAA" и "BBB" обрабатывали ошибку самостоятельно, используя откаты.
Group.transaction do
group = Group.create(
name: params["group-name"],
status: params["group-status"]
)
user = User.create(
name: params["user-name"],
status: params["user-status"]
)
end
Если я прочитаю это право, вам просто нужно проверить численность в соответствующих моделях. Прочитайте документацию для получения дополнительной информации здесь.
Поэтому добавьте:
class Group < ApplicationRecord
...
validates :status, numericality: { only_integer: true, allow_nil: true }
...
end
class User < ApplicationRecord
...
validates :status, numericality: { only_integer: true, allow_nil: true }
...
end
Это приведет к ошибке, если тип данных неверен, с которым вы можете справиться, как вы обсуждали.
Надеюсь, что это поможет - сообщите мне, если у вас есть вопросы!