【发布时间】:2018-07-17 10:21:12
【问题描述】:
我有一个整数字段(银行帐号)。在将其保存在导轨中时,如果它包含任何前面的零,那么这些零会被导轨自动修剪(删除),如下所示。
.gems :086 > bank_detail = BankDetail.new
=> #<BankDetail id: nil, account_name: nil, account_no: nil, bank_name: nil, branch_name: nil, ifsc_code: nil, user_id: nil, created_at: nil, updated_at: nil>
.gems :087 > bank_detail.account_no = "0123456"
=> "0123456"
.gems :089 > bank_detail.save(:validate => false)
(0.2ms) BEGIN
SQL (0.5ms) INSERT INTO "bank_details" ("account_no", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["account_no", 123456], ["created_at", "2018-07-17 15:47:35.062139"], ["updated_at", "2018-07-17 15:47:35.062139"]]
(22.7ms) COMMIT
=> true
.gems :090 >
.gems :090 > BankDetail.last
BankDetail Load (0.6ms) SELECT "bank_details".* FROM "bank_details" ORDER BY "bank_details"."id" DESC LIMIT 1
=> #<BankDetail id: 21, account_name: nil, account_no: 123456, bank_name: nil, branch_name: nil, ifsc_code: nil, user_id: nil, created_at: "2018-07-17 10:17:35", updated_at: "2018-07-17 10:17:35">
.gems :091 >
由于银行帐号包含前导零,我想制作轨道以保存数字字段以及前缀零。我该怎么做?
【问题讨论】:
-
如果你没问题,可以保存为字符串
-
帐号本质上不是数字。您可能希望将它们存储为字符串。
-
这让我想起了一些问题,问为什么他们的十六进制数字一直恢复为整数。 :)
-
您不能存储带有前导零的数字字段。
123 == 0123 == 00123 == 000123 == ...。使用字符串:"123" != "0123" != "00123" != "000123" != ...
标签: ruby-on-rails ruby database prefix zero