ROR中的联系号码文本字段表单错误

时间:2016-07-27 05:49:22

标签: mysql ruby-on-rails

我正在尝试将数据插入到ROR的数据库中,因为电话号码我已经取整数字段..但它只取9个数字位。如果我尝试放10个数字。它提供错误如

  

Mysql2 ::错误:第1行“电话”列的超出范围值:

INSERT INTO contacts (
    Email,
    Message,
    NAME,
    SUBJECT,
    Telephone,
    created_at,
    updated_at
)
VALUES
    (
        'ghfghf',
        'daaswwd ffdd',
        'ghfghf',
        'fggfhg',
         9234567899,
        '2016-07-27 05:47:43',
        '2016-07-27 05:47:43'
    )

但如果我将数字设为1234567890 ..它正在正确插入数据,但不能用于任何其他数字.. 9878675645

3 个答案:

答案 0 :(得分:0)

除非您需要实际操作的电话号码,否则应将它们存储为字符串而不是整数。想象一下,您需要存储一个看起来像001234545677788的国际号码。如果是整数,则不保留两个前导零。此外,如果您想使用标准表示法进行国际访问+1234566454545,您将错过+符号。

答案 1 :(得分:0)

问题是您使用整数的数据类型,整数的间隔来自: -2147483648 TO 2147483647

并且不存储电话号码,因为数字使用VARCHAR,因为当你写一个以0开头的数字时,左边的零将会消失0099 ---> 99

答案 2 :(得分:0)

  

Mysql2 ::错误:列'电话'超出范围值在第1行:

telephone的列类型更改为字符串,因为整数不支持该长范围

def up
  change_column :contacts, :telephone, :string
end

def down
  change_column :contacts, :telephone, :integer
end