【Rails】CSV出力する際の0落ち問題の対応方法

こんにちは!CODE CLUB965のKです!

今回は、RailsでCSV出力の実装をしたときに、先頭が0から始まる数字が消えて出力されてしまう「0落ち問題」の対応方法について書きたいと思います。

0落ち問題とは?

例えば、電話番号のような「080-xxxx-xxxx」のようなデータをCSV出力すると、先頭の0が消えて「80-xxxx-xxxx」と出力されてしまう問題のことを言います。

対応方法

対応方法としては、CSVに出力する前に0落ちするデータを「""(ダブルクォーテーション)」で囲むことで、CSVに出力されても先頭の0が消えません。

では、railsではどうするかというと、以下の記述をするだけで対象のデータをダブルクォーテーションで囲めるので0落ちしません。

%Q{="#{data}"}

dataはダブルクォーテーションで囲む対象のデータ(変数)になります。

ちなみに、Rubocop準拠する必要がある場合は、

%(="#{hoge}")

と書けばOKです。

※ Rubocop・・・Rubyのコードがコーディング規約に沿っているかを確認できる「静的コード解析ツール(コーディングチェックツール)」の1つです。

最後に

CSVの0落ち問題は厄介ですよね...。
とはいえ対応方法はあるのでしっかり対応しましょう。

それでは、また!

Follow me!