在Devise中显示5位数字Zip

时间:2016-08-04 01:43:24

标签: ruby-on-rails ruby devise

我有一个设计用户模型,我问他们的部分信息是他们的5位邮政编码。如果他们的邮政编码是08601,那么当他们去编辑他们的用户设置时,他们会看到他们的邮政编码为8601,前面没有0。有没有办法格式化设计帐户设置中显示的邮政编码(类似“%05d”)?以下是我到目前为止在该领域所拥有的内容:

<div class="form-group">
  <%= f.label :zip_code %><br />
  <%= f.text_field :zip_code, class: "form-control", autofocus: true %>
</div>

由于

1 个答案:

答案 0 :(得分:1)

问题可能出在您的数据库列数据类型

由于您在表单中使用了邮政编码,我认为您已将数据库中的zip_code列用作整数,这就是您获取此邮件的原因。将列的数据类型更改为字符串,然后尝试保存数据。

如果要保留数据类型整数

如果这样做,您需要在每次使用时将zip_code更改为字符串,并在zip_code之前添加00。这不是编程的好方法,可能会在以后出现问题。

但您可以在模型中执行此操作

def self.zip_code_string
   @zip = self.zip_code.to_s
   "00"+@zip
end

显示或使用

@user.zip_code_string

将起作用