Я в процессе обновления моего Rails-приложения с версии 4.1.16 до 5.2.3
У меня есть столбец с ненулевым ограничением и значением по умолчанию, равным 0
schema.rb:
t.integer wait_time_minutes default: 0, null: false
Соответствующая форма содержит следующее:
= f.select :wait_time_minutes, [15, 30, 45, 60, 90, 120], { include_blank: true }, class: 'form-control'
При отправке этой формы без выбора каких-либо значений в параметрах передается следующее:
"wait_time_minutes"=>""
И он пытается обновить столбец с нулем:
UPDATE "table_name" SET "wait_time_minutes" = $1, "updated_at" = $2 WHERE "table_name"."id" = $3 ["wait_time_minutes", nil], ["updated_at", "2019-06-23 05:32:28.368640"], ["id", 1445]]
Поскольку столбец не имеет нулевого ограничения, он вызывает следующее исключение:
PG::NotNullViolation - ERROR: null value in column "wait_time_minutes" violates not-null constraint
Но это было не так, как раньше. Он отлично работал в Rails 4.1.16.
Как я могу исправить эту проблему? У меня есть эта проблема в большинстве мест моего приложения. Спасибо.