作者:浪人-zhao_433 | 来源:互联网 | 2022-12-10 14:02
我有一个整数字段(银行帐号).在将它保存在轨道中时,如果它包含任何前面的零点,那么零点会被轨道自动修剪(移除),如下所示.
.gems :086 > bank_detail = BankDetail.new
=> #
.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
=> #
.gems :091 >
由于银行帐号包含前导零,我想使用rails来保存数字字段以及带前缀的零.我怎样才能做到这一点?
1> spickermann..:
答案非常简单:银行帐号可能看起来像一个数字,但不应该以整数形式存储.请改用字符串列.
经验法则是:当数学对该数字类型没有意义时,不要对数字使用整数列 - 例如帐号,邮政编码,序列号