1. ホーム
  2. ruby

[解決済み] レールの先頭のゼロ

2022-04-27 12:45:58

質問

フィールドがあります hrmin は、私のアプリケーションでは両方とも整数です。私のアプリケーションでは hr フィールドで、ユーザーが "1" を入力した場合、データベースに保存する前に、Rails が自動的に "01" にパッドしてくれるようにしたいのです。また min フィールドに "0" を入力すると、"00" と入力されるようにします。

どうすればよいのでしょうか?

どのように解決するのですか?

整数値として保存し、実行時に記述したように表示するのがよいでしょう。どの言語にもゼロを埋め込む方法があります。 文字列#rjust . このメソッドは、文字列を右寄せにして、指定した長さになるように、指定したパディング文字を使用します。

<ブロッククオート

str.rjust(integer, padstr=' ') → new_str

もし integer の長さより大きい場合は str は、新しい String の長さ integerstr で右寄せにし、パッドで囲む。 padstr を返し、それ以外の場合は str .

some_int = 5
some_int.to_s.rjust(2, '0')  # => '05'
some_int.to_s.rjust(5, '0')  # => '00005'

another_int = 150
another_int.to_s.rjust(2, '0') # => '150'
another_int.to_s.rjust(3, '0') # => '150'
another_int.to_s.rjust(5, '0') # => '00150'