rails rein gem add_numericity_constraint терпит неудачу с оператором не существует: целое число - PullRequest
0 голосов
/ 30 марта 2020

Это миграция, которую я пытаюсь использовать ...

class CreateContacts < ActiveRecord::Migration[6.0]
  def change
    create_table :contacts do |t|
      t.integer :phone_number, null: :false, length: { minimum: 10, maximum: 10 }

      t.timestamps
    end

    add_numericality_constraint :contacts, :phone_number
    add_match_constraint :contacts, :phone_number, accepts: '[1-9]{1}[\d]{9}'
  end
end

Это ошибка PG, которая возвращается ...

Caused by:
PG::UndefinedFunction: ERROR:  operator does not exist: integer ~ unknown
HINT:  No operator matches the given name and argument types. You might need to add explicit type casts.
...db/migrate/20200330011140_create_contacts.rb:10:in `change'
...rbenv/versions/2.7.0/bin/bundle:23:in `load'
...rbenv/versions/2.7.0/bin/bundle:23:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

Есть ли у кого-нибудь мысли по этому поводу? ?

1 Ответ

0 голосов
/ 03 апреля 2020

Я использовал строку вместо bigint для этого ...

  def change
    create_table :contacts do |t|
      t.string :phone_number, null: false

      t.timestamps
    end

    add_match_constraint :contacts, :phone_number, accepts: '[1-9]{1}[\d]{9}'
    add_length_constraint :contacts, :phone_number, equal_to: 10
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...