【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落ち問題は厄介ですよね...。
とはいえ対応方法はあるのでしっかり対応しましょう。
それでは、また!