Проверка Rails не ошибка числа для текстового поля - PullRequest
0 голосов
/ 13 января 2019

Я создал модель AcademicInfo со следующей миграцией. В нем есть столбец с именем remarks, а поле - текстовое поле. В основном я сделал это для хранения какого-то длинного текста. Но когда я пытаюсь создать объект с текстом, он дает мне странный вид «не ошибка числа»

class CreateAcademicInfos < ActiveRecord::Migration[5.2]
  def change
    create_table :academic_infos do |t|
      t.string :institution_name, null: false, default: ''
      t.string :degree, null: false, default: ''
      t.string :authority_body, null: false, default: ''
      t.text :description_of_course, null: false, default: ''
      t.date :start_date
      t.date :end_date
      t.text :remarks, null: false, default: ''
      t.references :user, foreign_key: true

      t.timestamps
    end
  end
end

Мое сообщение запроса для контроллера:

{"institution_name": "Tribhuvan Uni", "authority_body": "Nepal Gov", "description_of_course": "Lamda Lamda description", "remarks": "THis is remarks", "start_date": "2018-12-12", "end_date": "2019-12-12", "degree": "Computer Sci", "user_id": 1}

Но я получаю ошибку

{
    "remarks": [
        "is not a number"
    ]
}

И в моей модели у меня есть следующие проверки

class AcademicInfo < ApplicationRecord

  validates :institution_name, :presence => true, :length => {:minimum => 3, :maximum => 100}
  validates :degree, :presence => true, :length => {:minimum => 3, :maximum => 100}
  validates :authority_body, :presence => true, :length => {:minimum => 3, :maximum => 100}
  validates :description_of_course, :presence => true, :length => {:minimum => 3, :maximum => 100}
  validates :remarks, :numericality => true, :presence => true, :length => {:minimum => 3, :maximum => 100}
  validates :remarks, :length => {:minimum => 5}, :allow_blank => true
  validates :start_date, :presence => true
  validates :end_date, :presence => true

  belongs_to :user
end

Не могу понять, почему это происходит.

1 Ответ

0 голосов
/ 13 января 2019

Извините, что было ошибкой указывать число: правда там

...