Модель Rails принимает float только между 0 и 1 - PullRequest
0 голосов
/ 13 июля 2020

У меня есть модель, в которой я сохранил процентный прогресс пользователей - в частности, это поле percent_progress, float от 0 (0%) до 1 (100%) в модели JourneyProgress. Мне просто интересно, как защитить это поле, чтобы туда не попали неправильные числа?

Вот моя миграция:

create_table :journey_progresses do |t|
  t.references :user, foreign_key: true
  t.references :journey, foreign_key: true
  t.float :percent_progress
  t.string :finished_at

  t.timestamps
end

Ответы [ 2 ]

2 голосов
/ 13 июля 2020

Для этого можно использовать проверки:

trave_progress.rb

validates :percent_progress, inclusion: 0.0..1.0
0 голосов
/ 13 июля 2020

Если вы хотите выполнить sh, что вам необходимо установить этот гем mv- postgresql.

Использование

create_table :journey_progresses do |t|
  t.references :user, foreign_key: true
  t.references :journey, foreign_key: true
  t.float :percent_progress, inclusion: 0.0..1.0
  t.string :finished_at

  t.timestamps
end

Далее go в свой model и добавьте эту строчку

class JourneyProgress ActiveRecord::Base
  enforce_migration_validations
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...