RubyのCSVでnew fileの時だけheaderをつける方法

f:id:ihatov08:20170221215712j:plain

CSVでnew fileの時だけheaderをつける方法です。

header,write_headersオプションを使う

headerオプションで、headerにしたい文字列を配列で渡します。
write_headersオプションはtrueを渡した時にheaderが挿入されるので、
ファイルが存在しない場合、つまりnew fileの時だけtrueを渡してheaderを挿入します。
ファイルが存在する場合はfalseを渡して、headerを挿入しないようにします。

file_path = "file_path"
header = %w(date time description)
CSV.open(file_path, 'a+:shift_jis', headers: header,
write_headers: !File.exist?(file_path)) do |csv|
csv << csv_line
end

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA