2016-08-04 8 views
0

私はdeviseユーザーモデルを持っています。私が求めている情報の一部は5桁の郵便番号です。郵便番号が08601の場合、ユーザー設定を編集すると、郵便番号が0の前に8601と表示されます。アカウント設定(「%05d」など)に表示される郵便番号をフォーマットする方法はありますか?ここで私は、これまでその場で持っているものです:あなたは、フォームに郵便番号を使用しているのでDevitsで5 Digit Zipを表示

答えて

1

問題は、データベースの列のデータ型に

かもしれません

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

おかげで私はあなたを考えますデータベースでzip_code列を整数として使用していますが、なぜこれを取得していますか?列のデータ型を文字列に変更し、データを保存してみてください。あなたは

データ型の整数を維持したい場合は、そうした場合

は、あなたがそれを使用してZIP_CODE前に00を追加した文字列を毎回にごZIP_CODEを変更する必要があります。これはプログラミングの良いアプローチではなく、後で問題になる可能性があります。

しかし、あなたはモデル

def self.zip_code_string 
    @zip = self.zip_code.to_s 
    "00"[email protected] 
end 

そして

@user.zip_code_string 

を表示または使用するにはこれを行うことができますが

+0

に動作しますはい、郵便番号フィールドは整数です。私はそれをこのように保つことができる方法はありますか?この形式で単純にフォーマットしますか?私は新しいユーザーがサインアップするときに郵便番号が整数であることを確認するので、これを尋ねるだけです。これを行う方法がない場合は、データ型を文字列に変更します。 –

+0

回答を右に更新しました –

+0

ありがとうございました。私はちょうどデータ型を変更するようです。 :) –

関連する問題