Ruby/Rails中的Zipcode,to_i和前导零

Rag*_*ghu 3 ruby ruby-on-rails ruby-on-rails-3

我正在尝试保存在params中传递的邮政编码"07306",并且"03452",但to_i似乎是将这些字符串值转换为验证之前73063452之后,因为验证仍然失败.

如何防止Ruby删除前导零?

邮政编码是数据库中的整数字段,验证使用以下方法检查zip的格式:

validates_format_of :zip, :with => /\A[+\-]?\d+\Z/, :message => "Please enter a valid US zipcode"
Run Code Online (Sandbox Code Playgroud)

kso*_*sol 5

0在谈论整数时,在概念上有一个领先是没有意义的.在使用时格式化zipcode(即确保它具有正确的格式,0在从int转换为str时添加前导),或将其保存为字符串

  • 将其保存为字符串.如果没有对它们执行数学运算,那么将数字字符串保存为数字就没有意义了. (2认同)

Zaj*_*ajn 5

将其保存为字符串将减轻该问题,并且如果您决定支持可能包含或不包含字母的外国邮政编码,也将有助于面向未来的事情.