Ruby on rails - создать с неверным типом данных, он автоматически изменится на 0

0

База данных
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
  • 0
    Добавьте валидацию для поля, тогда Rails не будет вставлять

1 ответ

3

Если я прочитаю это право, вам просто нужно проверить численность в соответствующих моделях. Прочитайте документацию для получения дополнительной информации здесь.

Поэтому добавьте:

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

Это приведет к ошибке, если тип данных неверен, с которым вы можете справиться, как вы обсуждали.

Надеюсь, что это поможет - сообщите мне, если у вас есть вопросы!

  • 0
    @kase - это сделало работу за вас?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню